php rest api lumen,lumen Rest API 起步
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 起步相关推荐
- 谷歌地图api v3学习之:起步
最近公司项目需要用到地图搜索功能,首先考虑的是gmap(谷歌地图api),一开始觉得它很神秘很难,但经过几天的研究发现其实很简单.谷歌官网api写的很详细,一目了然 .在此用的是version3版本, ...
- baidumap api MySQL_百度地图API开发笔记一(基础篇)
什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供了诸 ...
- 我是如何根据豆瓣api来理解Restful API设计的
1.什么是REST REST全称是Representational State Transfer,表述状态转移的意思.它是在Roy Fielding博士论文首次提出.REST本身没有创造新的技术.组件 ...
- 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 基于本 ...
- java qq音乐接口 api,QQ音乐解析API接口更新:支持HQ,ape,flac无损音质,缓存功能
{"Code":"OK","keyword":"\u6296\u97f3\u70ed\u6b4c","page ...
- [Web API] 如何让 Web API 统一回传格式以及例外处理[转]
[Web API] 如何让 Web API 统一回传格式以及例外处理 前言 当我们在开发 Web API 时,一般的情况下每个 API 回传的数据型态或格式都不尽相同,如果你的项目从头到尾都是由你一个 ...
- java 时间api源码,时间API(示例代码)
1. 时间API 我们的时间在java里是long类型的整数,这个整数称之为时间戳(也叫格林威治时间),即从1970-01-01到现在为止所经过的毫秒数,单有这个时间戳是不能准确表达世界各地的时间,还 ...
- dingo php,用laravel dingo/api创建简单的api
这篇文章主要介绍了关于用laravel dingo/api创建简单的api,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 1,修改.env配置文件添加API_STANDARDS_TRE ...
- 使用PHP创建一个REST API(Create a REST API with PHP)
译者前言: 首先这是一篇国外的英文文章,非常系统.详尽的介绍了如何使用PHP创建REST API,国内这方面的资料非常非常的有限,而且基本没有可操作性.这篇文章写的非常好,只要对PHP稍有了解的程序员 ...
- 如何基于 Notadd 构建 API (Laravel 写 API)
如何基于 Notadd 构建 API Notadd 底层实现了 passport 机制,有统一的授权管理,主要支持两种方式进行 API 授权,一个是 client,领一个是 passport,这个在其 ...
最新文章
- c++11 模板的别名
- python中文软件-Python3.8.3下载
- 通过Internet与数据链路层传输信息时会发生什么?—Vecloud微云
- 关闭Windows不必要服务,电脑更安全
- mysql7种join连接_mysql 重新整理——七种连接join连接[六]
- CodeForces - 1561E Bottom-Tier Reversals(构造)
- 崩坏3服务器故障 临时维护,崩坏3 11.5游戏故障处理及补偿说明
- SQL Server 2017:列存储就地更新
- 80% 的 Android 应用正使用加密流量!
- 解析带有命名空间问题web.xml
- 销售易CRM:提高管理效率需做好业绩预测
- 死磕 java同步系列之JMM(Java Memory Model)
- Github下载代码和运行
- KISSsoft release 03.2014+诚善首饰零售管理
- 35种神奇的心理效应
- Elasticsearch的路由(Routing)特性
- 最新全国手机号码归属地信息SQLite数据库2019年2月更新
- Android H5页面调起微信和支付宝付款
- python读取excel汉字转成拼音_python 批量将中文名转换为拼音
- 非常实用的开发小工具
热门文章
- java连接navicat_如何使用Navicat连接Oracle
- python矩形碰撞检测算法_简易夺旗游戏(python像素级碰撞检测之颜色碰撞)
- 最适合画画的平板电脑_平板电脑性价比排行 2020年最值得入手的平板
- python从菜鸟到高手 pdf 百度云_Python从菜鸟到高手(4):导入Python模块
- python logger_Python:logging 的巧妙设计!
- edge打开pdf不显示印章_SumatraPDF - 免费轻量的 PDF 阅读器
- C语言printf函数
- 文科本二计算机类大学排名,全国二本大学排名文科分数线
- php 修改 apk名称6,反编译sencha toucha打包的apk文件,修改应用名称支持中文以及去除应用标题栏...
- nginx How nginx processes a request