下面是一个使用RESTful API设计理论实现的api基于TP5,直接上demo

先来看看目录结构

QQ截图20190623235113.png

按着上面先创建文件

来看看News.php里面得到内容

  1. <?php
  2.  
  3. namespace app\api\controller\v1;
  4.  
  5. use think\Controller;
  6. use app\api\common\model\VendorNews;
  7.  
  8. /**
  9.  * Created by PhpStorm.
  10.  * User: lt175
  11.  * Date: 2019/6/23
  12.  * Time: 21:31
  13.  */
  14. class News extends Controller
  15. {
  16.     public function index()
  17.     {
  18.         $data = [
  19.             'username' => '张三',
  20.             'age' => 18
  21.         ];
  22.         if ($data) {
  23.             $code = 200;
  24.         } else {
  25.             $code = 404;
  26.         }
  27.         $data = [
  28.             'code' => $code,
  29.             'data' => $data
  30.         ];
  31.         return json($data);
  32.     }
  33.  
  34.     //获取详情 http://api.test.com/index.php/v1/News/3
  35.     public function view($id)
  36.     {
  37.  
  38.         if ($id === 1) {
  39.             $data[] = ['a' => 1];
  40.         }
  41.         $data[] = [
  42.             'detail' => '这个是view方法',
  43.         ];
  44.         if ($data) {
  45.             $code = 200;
  46.         } else {
  47.             $code = 404;
  48.         }
  49.         $data = [
  50.             'code' => $code,
  51.             'data' => $data
  52.         ];
  53.         return json($data);
  54.     }
  55.  
  56.     //创建 http://api.test.com/index.php/v1/News
  57.     public function create()
  58.     {
  59.  
  60.         $postData = $this->request->param();
  61.  
  62.         $data = ['data' => 123];// 查询数据
  63.         if ($data) {
  64.             $code = '123' . 'news/post';
  65.         } else {
  66.             $code = 404;
  67.         }
  68.         $data = [
  69.             'code' => $code,
  70.             //'data' => $data
  71.         ];
  72.  
  73.         return json($data);
  74.     }
  75.  
  76.     //更新 http://api.test.com/index.php/v1/News/25
  77.     public function update($id)
  78.     {
  79.         if (!$id) {
  80.  
  81.             json(["code" => 5001, "message" => "没有获取到id"]);
  82.         }
  83.  
  84.  
  85.         $data = 1;// 查询数据
  86.         if ($data) {
  87.             $code = 201;
  88.         } else {
  89.             $code = 404;
  90.         }
  91.         $data = [
  92.             'code' => $code,
  93.             //'data' => $data
  94.         ];
  95.  
  96.         return json($id);
  97.     }
  98.  
  99.     //删除 http://api.test.com/index.php/v1/News/25
  100.  
  101.     public function delete($id)
  102.     {
  103.         if (!$id) {
  104.  
  105.             json(["code" => 5001, "message" => "没有获取到id"]);
  106.         }
  107.  
  108.  
  109.         $data = 1;// 查询数据
  110.         if ($data) {
  111.             $code = 204;
  112.         } else {
  113.             $code = 404;
  114.         }
  115.         $data = [
  116.             'code' => $code,
  117.             //'data' => $data
  118.         ];
  119.  
  120.         return json($data);
  121.     }
  122. }

再来看看application/route.php 路由

  1. <?php
  2.  
  3. use think\Route;
  4. Route::get('think', function () {
  5.     return 'hello,ThinkPHP5!';
  6. });
  7.  
  8. Route::get('hello/:name', function ($name) {
  9.     return $name ;
  10. });
  11.  
  12. Route::get('hello/:name', 'index/hello');
  13. //获取某一个活动
  14.  
  15. //获取列表
  16. Route::get(':version/News', 'api/:version.News/index');
  17. //创建数据
  18. Route::post(':version/News', 'api/:version.News/create');
  19. //更新数据
  20. Route::put(':version/News/:id', 'api/:version.News/update');//全部更新
  21. Route::PATCH(':version/News/:id', 'api/:version.News/update');//更新个别字段
  22. //删除
  23. Route::delete(':version/News/:id', 'api/:version.News/delete');
  24. //Route::options(':version/News', 'api/:version.News');

然后使用postman测试get,post,delete

QQ截图20190623235748.png

没开伪静态所以index.php就别管了 :version是版本号


可以看看RESTful API   详细介绍


下面的这些资源是偶然间发现做个笔记,反正我应该不会看的

视频学习地址:

http://study.163.com/course/courseMain.htm?courseId=1004171002

百度云盘链接: https://pan.baidu.com/s/1Fsa9tGvXLstRL1fwkDByHg 提取码: hy4t 

看云文档:

https://www.kancloud.cn/momingsixiali/thinkphp-resturl-api#/catalog

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!