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

Restful 架构 API 接口经典设计误区

当然有人赞成在请求路径中加入版本号,也有人反对这种加版本号的做法,他们认为: 加入版本号会让服务接口变得混乱,经常碰到的情况是,一些低版本的API接口调用一些高版本的API接口,导致数据解析错误,这无疑加大了用户迁移的成本...误区三 URI 中路径大小写问题 URL 中路径最好是小写,不要有驼峰式写法,比如下面接口错误写法 POST /orderItems/v1/1001 推荐写法 POST /orders/v1/items...v /blog/api/v1 使用 Http 状态码处理错误 如果你的API没有错误处理是很难的,只是返回 500 和出错堆栈不一定有用,Http 状态码提供 70 个出错,我们只要使用 10 个左右...500 – Internal Server Error – API开发者应该避免这种错误。.../blog/api/v1/errors/12345" } ] } 允许覆盖http方法 一些代理只支持 POST 和 GET 方法, 为了使用这些有限方法支持 RESTful API,需要一种办法覆盖

77920

API源码看API经济 | 从开发角度看应用架构13

(JTA) Enterprise Java Beans (EJB) Bean Validation API 创建一个Restful API,一般分为三个步骤: 第一步,为web service创建根上下文...POSTPOST方法创建一个新实体。 DELETE:DELETE方法删除实体。 PUT:PUT方法更新实体 每个HTTP方法都有一个类似命名的注释,用于注释RESTful服务类中的方法。...创建Restful API的时候,可能使用EJB container,也可以不使用EJB container,区别就是是否可以通过EJB的方式访问它 (如果EJB客户端和EJB在同一个JVM进程中本地运行...通过普通的POJO也可以创建Restful APIEJB Container摆在那(JBoss EAP中),用不用都可以。...先测试POST: ? 选择POST作为方法。 在URL表单中,输入http://localhost:8080/hello-rest/api/ persons。

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

构建可扩展的RESTful API:设计原则与最佳实践

导言:在设计和构建RESTful API时,需要考虑多个方面,包括资源的命名规范、URI的设计、HTTP方法的使用、状态码的处理、错误处理、安全性和身份验证等。...示例:GET /api/usersGET /api/users/{id}POST /api/usersPUT /api/users/{id}DELETE /api/users/{id}合理设计URI结构...示例:200 OK - 请求成功201 Created - 创建成功400 Bad Request - 请求错误404 Not Found - 资源不存在500 Internal Server Error...- 服务器内部错误统一的错误处理在API设计中,合理的错误处理是非常重要的。...本文介绍了RESTful API的设计原则和最佳实践,包括资源命名、URI设计、HTTP方法使用、状态码处理、错误处理、安全性和身份验证等方面。

46320

使用Flask实现RESTful API(译)

原文地址:Implementing a RESTful Web API with Python & Flask 简介 首先,安装Flask pip install flask 假设那你已经了解RESTful...API的相关概念,如果不清楚,可以阅读我之前写的这篇博客Designing a RESTful Web API....Flask非常适合于开发RESTful API,因为它具有以下特点: 使用Python进行开发,Python简洁易懂 容易上手 灵活 可以部署到不同的环境 支持RESTful请求分发 我一般是用curl...对于404错误我们可以这样处理: @app.errorhandler(404) def not_found(error=None): message = { 'status...修饰器进行覆盖或者使用下面的方法: app.error_handler_spec[None][404] = not_found 即使API不需要自定义错误信息,最好还是像上面这样做,因为Flask默认返回的错误信息是

57130

RESTful API 主流API风格

架构可以充分的利用 HTTP 协议的各种功能,是 HTTP 协议的最佳实践 RESTful API 是一种软件架构风格、设计风格,可以让软件更加清晰,更简洁,更有层次,可维护性更好二、RESTful...HTTP/1.1 303 See Other Location: /api/orders/12345 4xx 状态码 4xx 状态码表示客户端错误,主要有下面几种: 400 Bad Request:服务器不理解客户端的请求...404 Not Found:所请求的资源不存在,或不可用。 405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。 422 Unprocessable Entity :客户端上传的附件无法处理,导致请求失败。...5xx 状态码 5xx状态码表示服务端错误。一般来说,API 不会向用户透露服务器的详细信息,所以只要两个状态码就够了。

2.9K11

RESTful规范

§422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...状态码的完全列表参见这里 URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API,返回404 not found 或 410 gone;对迁移的API,返回 301重定向。...对第三点的实现稍微多说一点: Java服务器端一般用异常表示 RESTful API错误API 可能抛出两类异常:业务异常和非业务异常。 ...非业务类异常 表示不在预期内的问题,通常由类库、框架抛出,或由于自己的代码逻辑错误导致,比如数据库连接失败、空指针异常、除0错误等等。 业务类异常必须提供2种信息: 1.     ...自己的代码不要抛这个异常 六、其他 (1)API的身份认证应该使用OAuth2.0框架 (2)服务器返回的数据格式,应该尽量使用JSON,避免使用XML (3)比较复杂的接口不能确定是使用POST还是

1.9K00

restful api接口规范和服务调用的区别_rest接口规范

导致API构架的流行,甚至出现”APIFirst”的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。...如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。...对第三点的实现稍微多说一点: Java 服务器端一般用异常表示 RESTful API错误API 可能抛出两类异常:业务异常和非业务异常。...非业务类异常表示不在预期内的问题,通常由类库、框架抛出,或由于自己的代码逻辑错误导致,比如数据库连接失败、空指针异常、除0错误等等。...URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API,返回404 not found 或 410 gone;对迁移的API,返回 301 重定向。

1.7K10

RESTfulRESTful API 接口设计规范 | 示例

404 Not Found //请求资源不存在 500 Internal Serval Error //服务器发生不可预期的错误 503 Server Unavailable // 服务器当前不能处理客户端的请求...对比 效率与易用性:SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。同时在易用性方面以及学习成本上也有所增加。...使用RESTful 设计RESTful API 资源路径(URI):RESTful的核心是面向资源,如何规划资源路径很重要 HTTP动词(请求方式):如get,post,delete,put...当然,处理RESTful API设计思想,还有最近流行的GraphQL,它是一种API查询语言,其将所见即所得的思想引入,能帮助提升开发的体验与应用的性能。...(参考:http://graphql.cn/ ) 参考 慕课教程 Restful API 的设计规范 理解RESTful架构 RESTful架构基础

1.3K20

RESTful API 设计指南

导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。...我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。 今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(1,2)。...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。...404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。...422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误

78140

SpringMVC+RestFul详细示例实战教程一(实现跨域访问+postman测试)

这样很容易导致的一个结果是我们在设计 RESTful API 时,在 URI 中使用动词。例如:GET /user/getUser/123。正确写法应该是 GET /user/123。...四、基于Rest的Controller(控制器) 我们的 REST API : GET 方式请求 /api/user/ 返回用户列表 GET 方式请求 /api/user/1返回id为1的用户 POST...现在试着发送一个带有错误识别码的GET请求,将收到一个HTTP 404 ?...但是也没人阻止你为POST或者PUT方式响应体里发送内容。但是这还是REST 的API?值得怀疑。 不管怎样,我们试着创建同一个用户时,你将获得HTTP冲突的响应。 ?...http://www.ruanyifeng.com/blog/2014/05/restful_api.html http://blog.jobbole.com/41233/

2.5K20

Restful API 设计指北

订阅本站 近期学习了Go语言,跟着七米在学习,学习过程中了解到了 API 的一个设计规范,也就是本文要讲的 Restful API 设计模式,现在互联网处在前后端分离的阶段,API 的书写及规范化是非常重要的...,针对于 APIRestful API 中设计比较规范的是 Github API,可以直接访问他们的 https://api.github.com 直接查看 Github 针对与公共接口的链接及使用方法...此篇文章也是针对于这几天学习 Restful API 做了一个笔记或小结,若有不足之处还望批评指正,谢谢。...: 状态码 LABEL 解释 200 OK 请求成功接收并处理,一般响应中都会有 body 201 Created 请求已完成,并导致了一个或者多个资源被创建,最常用在 POST 创建资源的时候 202...参考资料 RESTful API 设计指南 – 阮一峰 跟着 Github 学习 Restful HTTP API 设计 REST API Tutorial Representational State

69620

RESTful API教程:学习关键的Web服务设计原则

但是许多RESTful We服务的问题并不在于开发而在于设计。本文将解决这些Web服务的设计问题,并揭示软件开发者在创建RESTful API时所犯的常见错误。...如果jQuery或Angular客户端需要操作资源,则应该有一个唯一的URL,该URL使得相关的JavaScript代码可以标识定位对应的RESTful资源。...但是,RESTful API设计者至少应该考虑另外三种HTTP方法,即POST、PUT和DELETE。...保守的使用RESTful API设计的瑞士军刀:POST方法 我们已经知道,从数据库中删除10条最老的记录是对DELETE方法的错误使用,而简单的数字增量则是PUT方法的糟糕应用,这是否意味着我们不能用...当RESTful API设计者对他们的问题域采取“基于服务”的方法时,经常会出现频繁使用POST方法的趋势。创建RESTful API时,始终在系统中应用“基于资源”的方式十分重要。

1.8K10
领券