第三节: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 生成一个随机数 ...
随机推荐
- 视觉词袋模型(BOVW)
一.介绍 Bag-of-words model (BoW model) 最早出现在神经语言程序学(NLP)和信息检索(IR)领域. 该模型忽略掉文本的语法和语序, 用一组无序的单词(words)来表达 ...
- Python 爬虫:把廖雪峰教程转换成 PDF 电子书
写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天尝试写一个爬虫,将廖雪峰老师的 ...
- idea tomee required to support ear ejb deployment问题
先删掉原来的uname,然后添加项目即可
- js 时间字符串转化为时间
对于时间字符串格式为:"2017-03-03 12:23:55"; IE:显示无效的日期 new Date("2017-03-3 12:23:55") //[d ...
- 最近跟mysql的自动shutdown干上了。。。
数据库变大之后,又开始不定时shutdown了. 搜了半天,也没啥用, 根据谋篇写的内容,改了下一个参数 vi /etc/my.cnf 修改innodb_buffer_pool_size = 16 ...
- ueditor 和 umeditor 粘贴过滤问题
最近遇到需要将WORD WPS等复制的带有格式的内容粘贴到富文本编辑器里面去掉冗余的HTML,只保留最有用的部分. 第一步肯定是先查官方文档了. http://fex.baidu.com/uedito ...
- PHP小技巧
1.js获取服务器年月日 var date= '<?php echo date("Y-m-d",time())?>';//获取服务器年月
- PostgreSQL 下生成 UUID(Guid)
最近在Windows 10 下安装了 PostgreSQL(postgresql-9.6.3-1-windows.exe),在学习过程中,发现PostgreSQL 支持UUID(Guid)类型,但是却 ...
- mysql数据库事务详细剖析
在写之前交代一下背景吧! 做开发也好久了,没怎么整理过知识,现在剖析一下自己对数据库事务的认识,以前用sqlserver,现在转java后又用mysql.oracle.我这块就主要解释一下mysql数 ...
- c++/cmake /Android NDK 动态链接库交叉编译笔记
项目使用cmake管理,由于项目的需要,核心代码要求跨 Linux/Windows/Android 三平台.Windows和Linux都好说,但Android NDK费了一番功夫还是没有解决.临时的解 ...