第三节:Creating API Endpoints (创建API路由)
对于这篇文章的标题,其实,直译就是创建api端点。但是,真的很难懂,我还是写为API路由吧。每篇,文章,我都会全部去进行实践操作,力求写一个好点的教程。
本文英文地址——>https://github.com/dingo/api/wiki/Creating-API-Endpoints
An endpoint is simply another term for a route. When talking about APIs many people refer to the routes you visit as an endpoint.
上面这句英文,是官方给出的关于这篇文章的介绍。大概意思就是,端点只是路由的一种术语。在谈论api时,许多人将您访问的路由称为端点。
1.Version Groups 版本组
为了避免和主程序自带的路由区分,这个包使用了它自己的路由器。因此,我们必须首先获得一个dingoAPI路由器的实例来创建我们的路由。如下:
$api = app('Dingo\Api\Routing\Router');
如果你想要某个组响应多个版本的API,可以传递多版本数组。如下:
$api->version(['v1', 'v2'], function ($api) { });
这里的版本号可以看作和框架的标准路由分组一样传递数组属性作为第二个参数。如下:
$api->version('v1', ['middleware' => 'foo'], function ($api) { });
你也能为你某个版本中的路由,统一一些属性。如下:
$api->version('v1', function ($api) {
$api->group(['middleware' => 'foo'], function ($api) {
// Endpoints registered here will have the "foo" middleware applied.
});
});
2.Creating Endpoints 创建路由
一旦你拥有一个版本组,你就可以使用$api 在这个版本组中,创建路由。
$api->version('v1', function ($api) {
$api->get('users/{id}', 'App\Api\Controllers\UserController@show');
});
因为每个版本组都是不相关的,相同的url路由,可以在不同的版本组中,作出不同的响应。
$api->version('v1', function ($api) {
$api->get('users/{id}', 'App\Api\V1\Controllers\UserController@show');
}); $api->version('v2', function ($api) {
$api->get('users/{id}', 'App\Api\V2\Controllers\UserController@show');
});
你也可以在不同的版本中,使用各自的方法注册资源和控制器。
提醒,你需要为控制器添加说明完整的命名空间(namespace),.例如:App\Http\Controllers
3.Named Routes And Generating URLs 命名路由并生成URL
命名你的路由可以使你方便的生成他们的 URL。你可以跟 Laravel 一样的方法命名你的路由。
$api->get('users/{id}', ['as' => 'users.index', 'uses' => 'Api\V1\UserController@show']);
现在你可以通过路由别名,生成这个别名的URL。
app('Dingo\Api\Routing\UrlGenerator')->version('v1')->route('users.index');
4.Viewing Routes In The Console 在特定的控制台上显示路由
如果你使用Laravel 5.1, 你可以通过使用Artisan命令查看。
$ php artisan api:routes
该命令和Laravel中的route:list
命令一样。
第三节:Creating API Endpoints (创建API路由)的更多相关文章
- 第三节:dingo/API 最新版 V2.0 之 Creating API Endpoints (连载)
对于这篇文章的标题,其实,直译就是创建api端点.但是,真的很难懂,我还是写为API路由吧.每篇,文章,我都会全部去进行实践操作,力求写一个好点的教程. 本文英文地址——>https://git ...
- ASP.NET Web API 控制器创建过程(二)
ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病 ...
- ASP.NET Web API 控制器创建过程(一)
ASP.NET Web API 控制器创建过程(一) 前言 在前面对管道.路由有了基础的了解过后,本篇将带大家一起学习一下在ASP.NET Web API中控制器的创建过程,这过程分为几个部分下面的内 ...
- MVC Api 的跨项目路由
现有Momoda.Api项目,由于团队所有人在此项目下开发,导致耦合度太高,现从此接口项目中拆分出多个子项目从而避免对Momda.Api的改动导致“爆炸” MVCApi的跨项目路由和MVC有解决方式有 ...
- ASP.NET Web API框架揭秘:路由系统的几个核心类型
ASP.NET Web API框架揭秘:路由系统的几个核心类型 虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分 ...
- Blocking Cross Origin API request for /api/contents Creating Notebook Failed An error occurred while creating a new notebook.
anacoda安装的jupyter,使用nginx进行了转发,远程访问可以进去,但是创建文件和创建目录都会报错 浏览器页面报错: 第一次使用jupyter创建python时错误:Creating No ...
- Web API使用记录系列(一)创建API项目与基本配置
本系列文章主要记录Web API使用过程中的一些个人总结,包括创建API项目.基础配置.ApiTestClient使用与HelpPage页面的优化.Owin与OAuth的使用等. 本节主要内容是API ...
- 创建基于OData的Web API - Knowledge Builder API, Part IV: Write Controller
基于上一篇<创建基于OData的Web API - Knowledge Builder API, Part III:Write Model and Controller>,新创建的ODat ...
- Openstack组件部署 — Keystone Install & Create service entity and API endpoints
目录 目录 前文列表 Install and configure Prerequisites 先决条件 Create the database for identity service 生成一个随机数 ...
随机推荐
- JSON.stringify实战用法
1.首先定义一个数组 var teamPlanMinList = new Array(); 2. 定义一个json对象 var json = { "plname":plname, ...
- panic: interface conversion: interface {} is nil, not chan *sarama.ProducerError
使用golang kafka sarama 包时,遇到如下问题: 高并发情况下使用同步sync producer,偶尔遇到crash: panic: interface conversion: int ...
- linux环境下安装redis扩展
注意:目录的权限 chomd 777 -R 1.安装redis 下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz 上传ph ...
- 通过xinetd服务管理 rsync 实现开机自启动
1.1 xinetd服务配置 1.1.1 检查xinetd服务是否安装 [root@backup ~]# rpm -qa xinetd [root@backup ~]# rpm -ql xinetd ...
- C# join子句
join 子句可用于将来自不同源序列并且在对象模型中没有直接关系的元素相关联. 唯一的要求是每个源中的元素需要共享某个可以进行比较以判断是否相等的值. 例如,食品经销商可能拥有某种产品的供应商列表以及 ...
- 聊聊keep-alive组件的使用及其实现原理
写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出. 文章的原地址:https://github.com/a ...
- linux C/C++开发环境搭建指南
一.安装基本开发环境 1.配置GCC 刚装好的系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,安装了这个包会自动安 ...
- 《Linux命令行与shell脚本编程大全》第九章 安装软件程序
包管理系统(PMS):用来进行软件安装.管理和删除的命令行工具 9.1包管理基础 1.主流的Linux发行版都采用了某种形式的包管理系统来控制软件和库的安装 2.PMS用一个数据库来记录:系统上安装了 ...
- 激光相机数据融合(5)--Gazebo仿真数据融合
这一节将用ROS+Gazebo 环境获取激光获取点云,并用PCL和OPENCV处理,源代码在:https://github.com/ZouCheng321/5_laser_camera_sim 由于激 ...
- .NET之RabbitMQ学习笔记(一)-应用场景
使用场景 1.异步处理 用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行处理方式:注册信息写数据库-发送注册邮件-发送注册短信,等上述三个操作都执行完成 ...