lumen Rest API 起步

修改项目文件

.env

DB_DATABASE=

DB_USERNAME=

DB_PASSWORD=

bootstrap/app.php

$app->withFacades();

$app->withEloquent();

数据库迁移

创建数据表

php artisan make:migration create_table_users --create=users

定义数据表

database/migrations/迁移文件

Schema::create(‘users‘, function (Blueprint $table) {

$table->id();

$table->string(‘name‘);

});

运行迁移

php artisan migrate

创建模型

接下来我们在app目录下创建模型文件User.php

namespace App;

use Illuminate\Auth\Authenticatable;

use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;

use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;

use Illuminate\Database\Eloquent\Model;

use Laravel\Lumen\Auth\Authorizable;

class User extends Model implements AuthenticatableContract, AuthorizableContract

{

use Authenticatable, Authorizable;

/**

* The attributes that are mass assignable.

*

* @var array

*/

protected $table = ‘users‘;

protected $fillable = [

‘id‘, ‘name‘,

];

/**

* The attributes excluded from the model‘s JSON form.

*

* @var array

*/

protected $hidden = [];

public $timestamps = false;

}

创建控制器

然后创建控制器文件app/Http/Controllers/UserController.php

namespace App\Http\Controllers;

use App\User;

use DB;

use Illuminate\Http\Request;

class UserController extends Controller

{

public function createUser(Request $request)

{

$user = User::create($request->all());

return response()->json($user);

}

public function updateUser(Request $request,$id)

{

$user = User::find($id);

$user->name = $request->input(‘name‘);

$user->save();

return response()->json($user);

}

public function deleteUser($id)

{

$user = User::find($id);

$user->delete();

return response()->json(‘删除成功‘);

}

public function index($id = null)

{

if (!empty($id)) {

$users = User::find($id);

}else{

$users = User::all();

}

return response()->json($users);

}

public function hello()

{

return ‘hello‘;

}

}

定义路由

修改文件bootstrap/app.php

$app->router->group([

‘namespace‘ => ‘App\Http\Controllers‘,

], function ($router) {

require __DIR__.‘/../routes/web.php‘;

require __DIR__.‘/../app/Http/routes.php‘;

});

return $app;

打开app/Http/routes.php并添加路由

$router->get(‘/hello‘, array(

‘uses‘ => [email protected]

));

$router->group([‘prefix‘ => ‘api‘], function() use ($router){

$router->post(‘person‘, [email protected]);

$router->put(‘person/{id}‘,[email protected]);

$router->delete(‘person/{id}‘,[email protected]);

$router->get(‘person[/{id}]‘,[email protected]);

});

测试API

curl -i -X POST -H "Content-Type:application/json" http://www.lelumen.test/api/person -d ‘{"id":2,"name":"test1"}‘

curl -i -X POST -H "Content-Type:application/json" http://www.lelumen.test/api/person -d ‘{"name":"test22"}‘

curl -H "Content-Type:application/json" http://www.lelumen.test/api/person/1 -X PUT -d ‘{"name":"ttt"}‘

curl -H "Content-Type:application/json" http://www.lelumen.test/api/person -X GET

curl -H "Content-Type:application/json" http://www.lelumen.test/api/person/1 -X GET

curl -X DELETE http://www.lelumen.test/api/person/1

空格引起的奇葩,阿哈哈

参考文件

原文:https://www.cnblogs.com/jjxhp/p/13363948.html

php rest api lumen,lumen Rest API 起步相关推荐

  1. 谷歌地图api v3学习之:起步

    最近公司项目需要用到地图搜索功能,首先考虑的是gmap(谷歌地图api),一开始觉得它很神秘很难,但经过几天的研究发现其实很简单.谷歌官网api写的很详细,一目了然 .在此用的是version3版本, ...

  2. baidumap api MySQL_百度地图API开发笔记一(基础篇)

    什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供了诸 ...

  3. 我是如何根据豆瓣api来理解Restful API设计的

    1.什么是REST REST全称是Representational State Transfer,表述状态转移的意思.它是在Roy Fielding博士论文首次提出.REST本身没有创造新的技术.组件 ...

  4. python封装api linux_python Socket编程-python API 与 Linux Socket API之间的关系

    python socket编程 by SA19225409 地址协议家族 Python 支持 AF_UNIX. AF_NETLINK. AF_TIPC 和 AF_INET 家族 AF_UNIX 基于本 ...

  5. java qq音乐接口 api,QQ音乐解析API接口更新:支持HQ,ape,flac无损音质,缓存功能

    {"Code":"OK","keyword":"\u6296\u97f3\u70ed\u6b4c","page ...

  6. [Web API] 如何让 Web API 统一回传格式以及例外处理[转]

    [Web API] 如何让 Web API 统一回传格式以及例外处理 前言 当我们在开发 Web API 时,一般的情况下每个 API 回传的数据型态或格式都不尽相同,如果你的项目从头到尾都是由你一个 ...

  7. java 时间api源码,时间API(示例代码)

    1. 时间API 我们的时间在java里是long类型的整数,这个整数称之为时间戳(也叫格林威治时间),即从1970-01-01到现在为止所经过的毫秒数,单有这个时间戳是不能准确表达世界各地的时间,还 ...

  8. dingo php,用laravel dingo/api创建简单的api

    这篇文章主要介绍了关于用laravel dingo/api创建简单的api,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 1,修改.env配置文件添加API_STANDARDS_TRE ...

  9. 使用PHP创建一个REST API(Create a REST API with PHP)

    译者前言: 首先这是一篇国外的英文文章,非常系统.详尽的介绍了如何使用PHP创建REST API,国内这方面的资料非常非常的有限,而且基本没有可操作性.这篇文章写的非常好,只要对PHP稍有了解的程序员 ...

  10. 如何基于 Notadd 构建 API (Laravel 写 API)

    如何基于 Notadd 构建 API Notadd 底层实现了 passport 机制,有统一的授权管理,主要支持两种方式进行 API 授权,一个是 client,领一个是 passport,这个在其 ...

最新文章

  1. c++11 模板的别名
  2. python中文软件-Python3.8.3下载
  3. 通过Internet与数据链路层传输信息时会发生什么?—Vecloud微云
  4. 关闭Windows不必要服务,电脑更安全
  5. mysql7种join连接_mysql 重新整理——七种连接join连接[六]
  6. CodeForces - 1561E Bottom-Tier Reversals(构造)
  7. 崩坏3服务器故障 临时维护,崩坏3 11.5游戏故障处理及补偿说明
  8. SQL Server 2017:列存储就地更新
  9. 80% 的 Android 应用正使用加密流量!
  10. 解析带有命名空间问题web.xml
  11. 销售易CRM:提高管理效率需做好业绩预测
  12. 死磕 java同步系列之JMM(Java Memory Model)
  13. Github下载代码和运行
  14. KISSsoft release 03.2014+诚善首饰零售管理
  15. 35种神奇的心理效应
  16. Elasticsearch的路由(Routing)特性
  17. 最新全国手机号码归属地信息SQLite数据库2019年2月更新
  18. Android H5页面调起微信和支付宝付款
  19. python读取excel汉字转成拼音_python 批量将中文名转换为拼音
  20. 非常实用的开发小工具

热门文章

  1. java连接navicat_如何使用Navicat连接Oracle
  2. python矩形碰撞检测算法_简易夺旗游戏(python像素级碰撞检测之颜色碰撞)
  3. 最适合画画的平板电脑_平板电脑性价比排行 2020年最值得入手的平板
  4. python从菜鸟到高手 pdf 百度云_Python从菜鸟到高手(4):导入Python模块
  5. python logger_Python:logging 的巧妙设计!
  6. edge打开pdf不显示印章_SumatraPDF - 免费轻量的 PDF 阅读器
  7. C语言printf函数
  8. 文科本二计算机类大学排名,全国二本大学排名文科分数线
  9. php 修改 apk名称6,反编译sencha toucha打包的apk文件,修改应用名称支持中文以及去除应用标题栏...
  10. nginx How nginx processes a request