首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel API教程:如何构建和测试RESTful API

HTTP动词表示动作(HTTP Verbs Represent Actions) RESTful API,我们使用HTTP动词作为动作( actions),并且端点是所执行的资源。...来源百度百科 资源(Resources) 资源将是actions的目标,我们的文章和用户的情况下,他们有自己的端点: /articles /users 在这个laravel api教程资源将在我们的数据模型具有...当一个动作执行成功,但没有内容返回。 206:部分内容。当您必须返回分页的资源列表时很有用。 400: 错误的请求。无法通过验证的请求的标准选项。 401:未经授权 用户需要进行身份验证。...403:禁止 用户已通过身份验证,但没有执行操作的权限。 404: 未找到。当没有找到资源时,这将由Laravel自动返回。 500: 内部服务器错误。...认证 Laravel中有许多实现API身份验证的方法(其中之一是Passport,实现OAuth2的好方法),但在本文中,我们将采用一个非常简化的方法。

20.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

09-nova的模块及novnc详解

Nova的各个模块 nova-api 对外提供rest接口的处理 对传入的参数进行合法性校验和约束限制 对请求资源进行配额(quota)的校验和预留 资源的创建,更新,删除查询等 虚拟机生命周期的入口...nova-novncproxy 访问VNC-Server的时候需要对应的VNC-Client,现在浏览器里已经集成了VNC的功能,可以直接通过浏览器来进行访问。...VNC Client 2 浏览器nova-api发送请求,要求返回访问vnc的url 3 nova-api调用nova-compute的get vnc console方法,要求返回连接VNC的信息 4...将libvirt返回的信息以及配置文件的信息综合成connect_info返回nova-api 9 nova-api会调用nova-consoleauth的authorize_console函数 10...验证了这个token,将这个instance对应的connect_info返回nova-novncproxy 16 nova-novncproxy通过connect_info的host, port等信息

2.2K30

RESETful API 设计规范

针对每一个端点来说,下面列出所有可行的 HTTP 动词和端点的组合 用 URL 定位资源 请求方法 URL 描述 GET /zoos 列出所有的动物园(ID和名称,不要太详细) POST /zoos 新增一个新的动物园...应该带着指向新资源地址的 Location 头 202 Accepted 服务器接受了请求,但是还未处理,响应应该包含相应的指示信息,告诉客户端该去哪里查询关于本次请求的信息 204 No Content...对不会返回响应体的成功请求进行响应(比如 DELETE 请求) 3xx 重定向 40x 客户端错误 400 Bad Request 请求异常,比如请求的body无法解析 401 Unauthorized...没有进行认证或者认证非法或失效 403 Forbidden 服务器已经理解请求,但是拒绝执行它 404 Not Found 该状态码表示用户请求资源不存在,如 获取不存在的用户信息 (get /users.../9999999) 访问不存在的端点 都 必须 返回该状态码,若该资源已永久不存在,则 应该 返回 410 响应。

1.6K10

016.OpenStack及云计算(面试)常见问题

keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。...nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。 nova-scheduler进程侦听消息队列,获取nova-api的请求。...nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。 nova-compute会从对应的消息队列获取创建虚拟机请求的消息。...nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor) nova-conductor从消息队队列拿到nova-compute请求消息。...比如说GET是查询资源,POST是添加资源,PUT是更新资源等等。 使用RESTful API架构,实现的目标 客户端与服务端的独立性: 公共接口不变的情况下,客户端和服务端的代码可以独立开发。

6.6K42

通过 PHP 代码发送 HTTP 响应与文件下载

除了 200 之外,还有很多其他响应状态码,比如 301、403、404、500 等,分别表征不同的含义,比如 301 表示永久重定向、403 表示没有权限、404 表示资源不存在、500 表示服务器错误...3、重定向 PHP ,可以通过设置 Location 响应头对用户请求进行重定向: ?... API 接口中,通常返回的是 JSON 格式数据,JSON 本质上也就是对象字符串,所以在请求处理代码的最后,通过 echo 输出对应的 JSON 对象字符串即可, PHP ,可以通过 PHP...入门指南' ] ]; echo json_encode($album); 浏览器访问 http://localhost:9000/response.php,返回的 JSON 格式响应数据如下...'); // 设置下载文件名 header('Content-Disposition: attachment; filename="laravel.zip"'); // 读取二进制文件流返回给客户端浏览器

4.5K20

13 个设计 REST API 的最佳实践

REST 是面向资源的,一个资源被一个 URI 所标识,比如 /articles/。 端点(endpoint),一般指动词与 URI 的组合,比如 GET: /articles/。...注:通常而言,对于浏览器来说,这似乎不是问题,因为浏览器一般都自带内容嗅探机制,但为了保持一致性,还是响应设置这个头部比较妥当。 3....响应返回错误详情 当 API 服务器处理错误时,如果能够返回的 JSON body 包含错误信息,对于接口调用者来说,会一定程度上帮助他们完成调试。...这里提供两种方案: 第一种方案通过 URI ,将嵌套的资源放在所关联的资源后边来进行描述,比如: GET: /authors/12/articles/ 一些人推荐这种方案的理由是,这种形式的...用户经过了正常的身份验证,但没有访问资源所需的权限?这种一般是未授权(403 Forbidden) 12.

3.5K20

玩转企业云计算平台系列(三):Openstack 身份认证服务 Keystone

端点(endpoint):一个可以通过网络来访问和定位某个openstack service的地址,即用户创建一个项目过程需要的各个服务资源的位置 虚拟机创建流程 工作流程 用户通过命令行或者horizon...keystone认证通过之后,返回novanova即开始执行创建虚拟机的请求。首先需要镜像资源nova带着令牌(token)和所需要的镜像名向glance提出镜像资源请求。...keystone认证成功后,返回给glance。glance向nova提供镜像服务。...keystone认证成功后,返回给nuetron。nuetron则给nova提供网络规划服务。 nova获取了镜像和网络之后,开始创建虚拟机,通过hypervisior可调用底层硬件资源进行创建。...创建完成返回给用户,成功执行了用户的请求

45910

一文牢记HTTP状态码(图解HTTP状态码)

比如,使用GET方法时,对应请求资源的实体会做为响应返回;而使用HEAD方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应返回首部,不会返回时主体部分)。...该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。...301,302,303之间的联系 当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送。...该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。 304状态码返回时,不包含任何响应的主体部分。304虽然被划分在3XX类别,但是和重定向没有关系。...403 Forbidden ? 该状态码表明对请求资源的访问被服务器拒绝了。服务器没有必要给出拒绝的详细理由,但如果想做说明的话,可以实体的主体部分对原因进行描述,这样就能让用户看到。

10.8K22

你确定你的 REST API 真的符合 REST 规范?

例如,对于移动应用程序中使用的实际 api,原子资源的使用是次优的。再如,完全拒绝请求之间的数据存储实质上禁止了随处可见的“用户会话”机制。 不过,我想说,也没你想的那么糟糕!...每个测试,模拟一个真实的 HTTP 请求并验证服务器的响应。例如, Node.js 的单元测试,用于模拟请求的有 supertest 和 chai-http包。...现在,假设我们有一个 user.models 和一个返回所有 users 的 GET /users 端点。...基于客户端类型分离端点 通常,相同的端点会根据客户端类型或发送请求的用户角色返回不同的数据。例如,对于移动应用程序用户和后台管理人员来说,GET /uses 端点可能存在很大的不同。...因此,如果要多次描述同一端点,可以路径后面的括号添加其类型。

21920

http常见状态码

2xx (3种) 200 OK:表示从客户端发送给服务器的请求被正常处理并返回; 204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回...、If-None-Match、If-Range、If-Unmodified-Since任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码; 307 Temporary...Redirect:临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况); 4xx (4种) 400 Bad Request:表示请求报文中存在语法错误...; 401 Unauthorized:未经许可,需要通过HTTP认证; 403 Forbidden:服务器拒绝该次访问(访问权限出现问题) 404 Not Found:表示服务器上无法找到请求资源,除此之外...,也可以服务器拒绝请求但不想给拒绝原因时使用; 5xx (2种) 500 Inter Server Error:表示服务器执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;

63020

API设计:先思考再编码

Web开发世界,API通常是响应客户端结构化文本数据请求的网站端点集合。 Web开发人员广泛使用和讨论的另一个概念是RESTFul Web API。...其主要组成部分有: URL:您的资源Web上的位置,您的端点的地址。一个示例是使用http://example.org/users列出您的用户。 请求方法:客户端希望特定端点上执行的操作。...资源组:相关资源组,比如Users。 资源:定义唯一资源,它的端点和操作。 参数:端点中用于指定动态参数,如ID或查询搜索。 响应:内容类型,HTTP状态代码和主体数据。...GET /cakes应该返回一个蛋糕列表,所以GET /cake/1应该返回第一个蛋糕,对吧?很不幸的是,不行。即使它在我们的语言是有道理的,它只会用更多端点搞乱客户端和开发人员。...易于使用:端点资源和输出数据应尽可能遵循相同的结构。 难以误用:如果发出了错误的请求返回错误并提供信息。 简单是比复杂更好:简单的事情每个方面都很容易。

1.1K30

Laravel5.2之Validator

概述: LaravelController.php文件引用了trait为ValidatesRequests,这个trait源码/Illuminate/Foundation/Validation/...(一)、post表单提交,并在视图中显示验证错误信息 1、先在routes.php写两个路由: Route::get('laravel/test/validator', 'PHPTestController...script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"> 浏览器访问...4、写显示验证错误信息视图 laravellaravel会在每次请求把errors变量刷到session,和视图模板绑定,所以errors变量视图模板可用,官方文档原话:"So, it is...1、TestValidatorRequest类里写验证规则 authorize()方法主要用来设置用户权限,返回false时会返回一个403并且控制器代码不能执行,如没有权限的用户不能提交表单。

13.2K31

OpenStack Pike dashboard noVNC 不能访问

: 1.一个用户试图从浏览器里面打开连接到虚拟机的VNC Client 2.浏览器nova-api发送请求,要求返回访问vnc的url 3.nova-api调用nova-compute的get vnc...console方法,要求返回连接VNC的信息 4.nova-compute调用libvirt的get vnc console函数 5.libvirt会通过解析虚拟机运行的/etc/libvirt/qemu...会随机生成一个UUID作为Token 8.nova-compute将libvirt返回的信息以及配置文件的信息综合成connect_info返回nova-api 9.nova-api会调用nova-consoleauth...将connect_info的access url信息返回浏览器:http://172.24.1.1:6080/vnc_auto.html?...验证了这个token,将这个instance对应的connect_info返回nova-novncproxy 16.nova-novncproxy通过connect_info的host, port等信息

2.6K40

Cell V2详解

进行资源更新,数据保存在 API Cell nova_api 数据库,这部分更新的数据 Pike 版本仅仅只有 cpu/ram/disk 这3个数据,之后的版本,还逐渐增加了像 GPU...接收用户发起的虚拟机创建请求,处理后通过 rpc 调用 nova-conductor 服务; 2. nova-conductor 服务收到请求后,会构造一个虚机创建任务,之后通过 rpc 调用 nova-scheduler...最终会返回一个最优的主机给 nova-conductor 服务; 4. nova-conductor 收到 nova-scheduler 返回的主机后,就需要将请求通过 rpc 发送给相应主机上的...但在多 Cell 架构下,Nova Scheduler 服务连接到的是 API Cell 的 MQ,而所有的计算节点,都连接到的是各自所在 Cell 的 MQ,Compute 和 Scheduler...之后的 Queens 版本,社区通过返回备用主机的方式,解决了这个问题。

1.5K80

常见http状态码

规范是原请求是post请求,不能进行重定向,原请求get可以进行重定向,但在浏览器的实际情况下,无论是get还是post,都可以进行重定向,所以由于历史原因,就延伸出了303(原302的实际效果)和307...404 服务器无法找到所请求资源。404状态码并不能说明请求资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回410而不是 404。...410 说明请求的目标资源原服务器上不存在了,并且是永久性的丢失。...501 服务器错误响应码表示请求的方法不被服务器支持,因此无法被处理。服务器必须支持的方法(即不会返回这个状态码的方法)只有 get、head。 502 表示网关或者代理服务器错误。...504 表示请求超时,扮演网关或者代理的服务器无法规定的时间内获得想要的响应。 505 表示服务器不支持请求所使用的 HTTP 版本。

34410

JSON Web Token(JWT)教程:一个基于Laravel和AngularJS的例子

它的工作原理 浏览器向包含用户身份和密码的服务器发出POST请求。服务器使用在用户浏览器上设置的cookie进行响应,并包含用于标识用户的会话ID。...JSON Web Token 的工作原理 浏览器或移动客户端向包含用户登录信息的认证服务器发出请求。认证服务器生成新的JWT access token并将其返回给客户端。...laravel-cors 我们composer.json Require the barryvdh/laravel-cors package 并更新我们的依赖。...为了简洁起见,我将把我所有的代码放在route.php文件,该文件负责Laravel路由和委托请求给控制器。...这是我们的拦截器的一个例子,它们浏览器的本地存储可用时注入一个token。

30.5K10

为什么 Laravel 这么优秀?

Laravel 用一个数组保存你注册过的所有路由;进行路由匹配时,Laravel 会用你当前请求的 pathinfo 来匹配已经注册的所有路由;当你的路由数量超级多时,最坏情况下你需要 O(n) 次才能找出匹配的路由...会直接帮我们验证并返回错误信息,如下面的 teacher_id 在数据库并不存在。...它为我们提供了种类众多的测试,包括 HTTP 测试、浏览器测试(行为测试)、单元测试、数据库测试等。...从容器里取东西(get) 所有用到容器的框架其本质都是框架启动的时候疯狂的往容器里装东西,容器里面的东西越多,容器提供的功能越大。...container 设置不同的值;如 CacheServiceProvider 会向容器中注册 Cache 对象,后续使用 Cache::get 时就使用的是这里注册的 Cache 对象,注册阶段不应该向容器获取值

15310
领券