dingo php,用laravel dingo/api创建简单的api
这篇文章主要介绍了关于用laravel dingo/api创建简单的api,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
1,修改.env配置文件添加API_STANDARDS_TREE=vnd
API_SUBTYPE=myapp
API_PREFIX=api
API_DOMAIN=null
API_VERSION=v1
API_NAME="My API"
API_CONDITIONAL_REQUEST=false
API_STRICT=false
API_DEBUG=true
Standards Tree 标准树
这有三个不同的树: x,prs 和 vnd。你使用的标准树需要取决于你开发的项目
未注册的树(x)主要表示本地和私有环境
私有树(prs)主要表示没有商业发布的项目
供应商树(vnd)主要表示公开发布的项目
子类型SUBTYPE
子类型通常是应用程序或项目的短名称,都是小写的。
前缀PREFIX(比如www.z5w.net/api/)
如果你曾经使用过 API 你就会知道大多数服务都来自子域或前缀。前缀或子域是必须的,但只需要一个。请避免使用版本号作为你的前缀或子域,因为版本控制是通过 header 头 Accept 处理的。
子域名API_DOMAIN
比如可以用api.z5w.net来做api的调用地址。如果已经设置了前缀prefix,则domain一般设为null
版本号version
这个版本号是你的 API 的默认版本号,并且会在一些未提供版本号的情况下作为回调的默认值使用。在生成 API 文档时也会使用这个版本号作为默认值。
名称Name
你的 API 的名称只会在你使用 API Blueprint 命令生成文档的时候使用。使用此名称可以避免你每次生成文档的时候都必须手动定义名称。
你可能需要把它用引号包起来。
条件请求CONDITIONAL_REQUEST
『条件请求』默认为开启状态,这有利于客户端的缓存机制在可能的情况下缓存 API 请求。
严格模式STRICT
严格模式要求客户端发送 Accept 头,代替配置文件中配置的默认版本。这意味着你将不能通过浏览器直接访问你的 API。
如果开启严格模式,发送非法的 Acceept 标头会抛出一个未处理的异常 Symfony\Component\HttpKernel\Exception\BadRequestHttpException ,你需要自己处理这个异常。
调试模式Debug
该包处理的通用错误包括一个 debug 键,当启用这个键时,将会填充堆栈跟踪详细信息。
2,在/routes/web.php添加路由$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function ($api) {
$api->get('helloworld', 'App\Api\Controllers\HelloController@index');
});
3,创建文件/app/Api/Controllers/HelloController.php<?php
namespace App\Api\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class HelloController extends Controller
{
public function index()
{
return '{content:Helloworld!}';
}
}
4,测试路由: $ php artisan api:routes,如果出现+-----+----------+-----------------+------+-------------------------------------------+-----------+------------+----------+------------+
| Host | Method | URI | Name | Action | Protected | Version(s) | Scope(s) | Rate Limit |
+------+----------+-----------------+------+-------------------------------------------+-----------+------------+----------+------------+
| | GET|HEAD | /api/helloworld | | App\Api\Controllers\HelloController@index | No | v1 | | |
+------+----------+-----------------+------+-------------------------------------------+-----------+------------+----------+------------+
表示成功
然后访问http://www.*.com/api/helloworld,看看是不是出现了api的json数据呢?{content:Helloworld!}
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
dingo php,用laravel dingo/api创建简单的api相关推荐
- C++使用socket的api创建简单服务器
使用Socket API建立简易的TCP服务端 目录 建立一个socket 绑定接受客户端连接的端口bind 监听网络端口listen 等待接受客户端连接accept 向客户端发送一条数据send 关 ...
- dingo php,详细介绍Laravel+Dingo/Api 自定义响应
Laravel+Dingo/Api 自定义响应的实现 在最近的开发开发项目中,我使用了Dingo/Api这个第三方Api库. Dingo是个很强大的Api库, 但在开发的过程中,需要自定义响应字段. ...
- laravel auth login 重定向自定义_Laravel学习之路(一):最简单的API 认证(Passport)实践...
API 认证(Passport)简介 Laravel 通过传统的登录表单已经让用户认证变得很简单,但是 API 认证怎么实现?API 通常使用令牌(token)进行认证并且在请求之间不维护会话(Ses ...
- 如何创建一个简单的API,建议萌新食用。
1.明确思路 API是提供数据的接口,也可以理解为是一个方法,不过这个方法是对外公开的,可以通过Http请求来调用: 我们首先要知道的是数据都是存在数据里面的,所以我们需要一个访问数据的帮助类来提升我 ...
- larvel 中的api.php_Laravel API 系列教程(一): 基于 Laravel 5.5 构建 测试 RESTful API...
Laravel API 系列教程(一): 基于 Laravel 5.5 构建 & 测试 RESTful API 由 学院君 创建于2年前, 最后更新于 9个月前 版本号 #3 171702 v ...
- Laravel 5.5 使用 Jwt-Auth 实现 API 用户认证以及无痛刷新访问令牌
最近在做一个公司的项目,前端使用 Vue.js,后端使用 Laravel 构建 Api 服务,用户认证的包本来是想用 Laravel Passport 的,但是感觉有点麻烦,于是使用了 jwt-aut ...
- laravel api_如何在现有的Laravel应用中获取即时GraphQL API
laravel api by Karthikeya Viswanath 通过Karthikeya Viswanath 如何在现有的Laravel应用中获取即时GraphQL API (How to g ...
- api 创建zookeeper客户端_zookeeper分布式锁原理及实现
前言 本文介绍下 zookeeper方式 实现分布式锁 原理简介 zookeeper实现分布式锁的原理就是多个节点同时在一个指定的节点下面创建临时会话顺序节点,谁创建的节点序号最小,谁就获得了锁,并且 ...
- 使用Node.js写一个简单的api接口
引入Http模块 默认你已经安装了Node.js Node当中内置了Http模块: 可以使用 var http= require("http"); 复制代码 引入http模块: H ...
最新文章
- ISC 2020技术日丨 网络空间危机四伏,如何发现威胁的蛛丝马迹?
- 21天学通python pdf-21天学通Python PDF百度网盘资源下载
- C++ 数值的整数次方 (最小int取反,递归实现乘方)
- IT服务台的进化(2)--企业外部服务台的优缺点
- 分隔线演练-利用参数增加分隔线的灵活度
- OpenSceneGraph 3.2 版本修改点
- Upload-Labs(16)
- 内嵌tomcat启动速度慢
- 字体设计灵感|浓墨重彩!代表“墨”字设计案例
- iOS 应用启动慢的原因找到了!
- OpenGL基础33:帧缓冲(上)之离屏渲染
- java枚举比较_java枚举enum equal与==
- LTP 语义依存分析
- c语言 桌面下雪程序,用C++写的在桌面上飘雪的特效程序
- disp语句怎么格式 matlab_matlab输出语句print
- javascript怎么定义类数组对象
- 小米8刷原生安卓系统
- 什么是嵌入式操作系统 常见的嵌入式系统有哪些
- 工作三年的java程序员修行之路
- Python如何删除多余的空格与空行(有代码)
热门文章
- jQuery的核心函数
- 2020港澳台iptv直播软件_用什么便签软件准时提醒开学第一课2020直播开始?
- python3.6.8卸载_Mac 卸载 彻底删除 自己下载的 python 3
- 电脑不能打字_意外收到一台ThinkPad T400笔记本电脑,简单升级后,办公没问题...
- 思科bfd静态路由切换_思科路由器曝出两个严重零日漏洞,已被野外利用
- 怎样打造高效节能的数据中心
- 上海:加快推进18个新建数据中心项目的建设和投资进度
- 为什么要完成量子计算机,我们为啥要量子计算机?
- Html5table控件,Table Web 控件、TableRow Web 控件及TableCell Web 控件
- 成功解决AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘