用laravel dingo/api创建简单的api
1,修改.env配置文件添加
1 2 3 4 5 6 7 8 9 | 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添加路由
1 2 3 4 | $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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?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,如果出现
1 2 3 4 5 | +------+----------+-----------------+------+-------------------------------------------+-----------+------------+----------+------------+ | 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数据呢?
1 | {content:Helloworld!} |

加微信交流
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2016-07-08 Bootstrap速学教程之简要介绍
2016-07-08 微信上线朋友圈屏蔽提醒功能 还你刷的纯净感