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

如何设计RESTful API

什么是REST 2000 年,Roy Fielding 提出 Representational State Transfer (REST) 概念,中文翻译过来"表述性状态传递",感兴趣朋友可以去维基百科看看原始概念...我们来了解一下 如何设计和开发一个高可用 REST APIs 网上一直有关于"最好Restful API设计"争论,何为最好,至今没有一个官方指导。... Restful API 设计标准之上,我们可以为我们设计增加一些弹性(团队都认可方式),每个项目的情况不同,最重要是项目组成员达成一致Restful API 设计规则,达到高可用即可 URL...过滤/分页/排序 实际业务场景中会经常对请求资源做条件筛选,分页显示,以及排序,我们不要为这些业务要求创建不同步 API,我们应该尽量保持 URL 信息简单,只需添加查询条件参数来实现上述功能,...同时客户端也应作出相应配合,客户端请求,也要明确告诉服务器,可以接受 JSON 格式,即请求 HTTP 头 ACCEPT属性也要设成 application/json,多渠道调用可能会存在相同资源需要有不同

1.6K20

赏心悦目的RESTful API这样来设计

什么是REST 2000 年,Roy Fielding 提出 Representational State Transfer (REST) 概念,中文翻译过来"表述性状态传递",感兴趣朋友可以去维基百科看看原始概念...我们来了解一下 如何设计和开发一个高可用 REST APIs 网上一直有关于"最好Restful API设计"争论,何为最好,至今没有一个官方指导。... Restful API 设计标准之上,我们可以为我们设计增加一些弹性(团队都认可方式),每个项目的情况不同,最重要是项目组成员达成一致Restful API 设计规则,达到高可用即可 URL...过滤/分页/排序 实际业务场景中会经常对请求资源做条件筛选,分页显示,以及排序,我们不要为这些业务要求创建不同步 API,我们应该尽量保持 URL 信息简单,只需添加查询条件参数来实现上述功能,...,非常方便 Postman Postman 功能十分强大, 搜索 Postman自定义环境变量,会打开新世界大门 写在最后 如何设计出最好 RESTful API 永远不会有结论,设计出高可用,团队认可

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

App项目实战之路(二):API

REST API 关于什么是REST,我就不在这里赘述了,直接推荐REST作者经典论文: 架构风格与基于网络软件架构设计(中文修订版) 下面我只想用一些实例描述几种架构风格API定义方面的不同。...其实,使用REST风格设计API,我觉得难点就在于如何抽象资源。使用RPC则相对容易很多。这时,也许有人就会提出疑问了。既然使用RPC比用REST更容易抽象出接口,那为何还要用REST呢?...因此,这里code我之前喜欢将其定义为业务错误码。但是,如果按照REST风格来设计,还是有统一code更合适。因此,我这次尝试下改变习惯。...不过,这个项目中,初期我只要求加强签名不可预测性即可,而nonce方案具备更高不可预测性。...在此总结一下: 采用REST风格定义API,接口抽象成对资源操作; 添加API版本控制,版本号嵌URL中; 响应统一使用code、message、dataJSON数据格式; 全站采用HTTPS;

1K20

前后端分离开发,RESTful 接口如何设计

客户端需要发出 GET 请求获取指定资源。客户端可以本地缓存请求结果,服务器可以远程缓存结果,系统中间层可以在请求链路中间缓存结果。这是一个与具体应用程序无关特性,可以加入系统设计中。...如果进行 GET 请求被打断,由于幂等性,客户端可以再次发起请求。这点非常重要。设计良好基础结构中,客户端可以从任意应用程序发起请求。...根据定义,二者似乎都可以被客户端用来创建或更新服务器资源,然而它们用途各有不同。 当无法预测请求创建资源标识,客户端会使用 POST 请求。...一些安全策略要求为不存在和已删除资源返回404,这样 DELETE 请求就不会泄漏有关资源是否存在信息。 还有另外三个没有广泛使用但是有价值动词。...它支持 Markdown 格式 API 文档,可以围绕设计过程进行社交,并且支持模拟数据托管实现,以便于 API 实现之前对其进行测试。

2.5K01

正确甄别APIREST API、RESTful API和Web Service之间异同

下面是设计REST风格系统架构需要满足或者遵循一些基本条件和原则: 1、REST架构中,Web中所有的事物(文本、音频、视频、图片、链接)都可以被统一抽象为资源(resource) 2、REST...架构中,每一个资源都有与之对应唯一资源标识符(resource identifier),当资源状态发生改变,资源标识符不会发生改变 3、REST架构中,所有的操作都是无状态。...REST架构遵循CRUD原则,所有的资源可以通过GET、POST、PUT和DELETE这四种行为完成对操作。...也就是说,RESTful APIREST API非正式实现方式,因为实现REST API方式有很多,RESTful API只是其中一种,且没有完全满足REST API所有设计原则,每个开发者实现...因为RESTful API设计中,我们完全可以通过GET方式完成CURD操作,也可以通过DELETE行为来创建资源,通过POST行为来修改资源,它实现方式并不严谨或者说并没有严格按照REST API

23.3K1313

REST API 最佳实践

Web 开发中,REST API 确保客户端和服务器之间顺利通信方面发挥了重要作用。 你可以把客户端看作是前端,把服务器看作是后端。...因为 API 在这种客户端-服务器通信中起着至关重要作用,所以我们设计 API 应该始终考虑到最佳实践。这有助于维护它们开发人员和那些使用它们的人,履行职责不会遇到问题。...在这篇文章中,我将带你了解创建 REST API 需要遵循一些最佳实践。这将帮助你创建最好 API,并使你 API 用户使用起来更容易。 0.什么是 REST API?...1.REST API 设计建议 1.用名词表示资源 当你设计一个 REST API ,你不应该在端点路径中使用动词。端点应该使用名词,表示它们各自作用。...删除多个评论 5.小结 在这篇文章中,你了解了创建 REST API 需要记住几个最佳实践。

1.6K20

RESTful 架构基础

客户端需要发出 GET 请求获取指定资源。客户端可以本地缓存请求结果,服务器可以远程缓存结果,系统中间层可以在请求链路中间缓存结果。这是一个与具体应用程序无关特性,可以加入系统设计中。...如果进行 GET 请求被打断,由于幂等性,客户端可以再次发起请求。这点非常重要。设计良好基础结构中,客户端可以从任意应用程序发起请求。...根据定义,二者似乎都可以被客户端用来创建或更新服务器资源,然而它们用途各有不同。 当无法预测请求创建资源标识,客户端会使用 POST 请求。...一些安全策略要求为不存在和已删除资源返回404,这样 DELETE 请求就不会泄漏有关资源是否存在信息。 还有另外三个没有广泛使用但是有价值动词。...它支持 Markdown 格式 API 文档,可以围绕设计过程进行社交,并且支持模拟数据托管实现,以便于 API 实现之前对其进行测试。

76120

RestFul架构基础

客户端需要发出 GET 请求获取指定资源。客户端可以本地缓存请求结果,服务器可以远程缓存结果,系统中间层可以在请求链路中间缓存结果。这是一个与具体应用程序无关特性,可以加入系统设计中。...如果进行 GET 请求被打断,由于幂等性,客户端可以再次发起请求。这点非常重要。设计良好基础结构中,客户端可以从任意应用程序发起请求。...根据定义,二者似乎都可以被客户端用来创建或更新服务器资源,然而它们用途各有不同。 当无法预测请求创建资源标识,客户端会使用 POST 请求。...一些安全策略要求为不存在和已删除资源返回404,这样 DELETE 请求就不会泄漏有关资源是否存在信息。 还有另外三个没有广泛使用但是有价值动词。...它支持 Markdown 格式 API 文档,可以围绕设计过程进行社交,并且支持模拟数据托管实现,以便于 API 实现之前对其进行测试。

60710

RESTful 架构基础

客户端需要发出 GET 请求获取指定资源。客户端可以本地缓存请求结果,服务器可以远程缓存结果,系统中间层可以在请求链路中间缓存结果。这是一个与具体应用程序无关特性,可以加入系统设计中。...如果进行 GET 请求被打断,由于幂等性,客户端可以再次发起请求。这点非常重要。设计良好基础结构中,客户端可以从任意应用程序发起请求。...根据定义,二者似乎都可以被客户端用来创建或更新服务器资源,然而它们用途各有不同。 当无法预测请求创建资源标识,客户端会使用 POST 请求。...一些安全策略要求为不存在和已删除资源返回404,这样 DELETE 请求就不会泄漏有关资源是否存在信息。 还有另外三个没有广泛使用但是有价值动词。...它支持 Markdown 格式 API 文档,可以围绕设计过程进行社交,并且支持模拟数据托管实现,以便于 API 实现之前对其进行测试。

91830

REST 和 SOAP 协议有什么区别?

* REST 作为一种架构风格,对 Web API 设计有一定限制。REST 标准要求被视为 “RESTful ” Web API 必须遵守 REST 约束。...### ** REST 之前 SOAP**SOAP 出现在 REST 之前REST 设计旨在解决 SOAP 一些问题。...发送请求,你会向资源传递一个与 CRUD(创建、读取、更新和删除)操作相对应方法。将方法视为对资源采取 “操作”,例如创建、更新或删除资源。...例如, REST API 中,通常只需一个 URL 端点,通过发送 POST 或 PUT 请求即可完成资源创建或更新。而在 SOAP 中,创建或更新数据对象需要分别调用处理这些特定操作独立函数。...从 GraphQL API 请求数据比使用 REST 更高效。使用 REST ,有单独资源 URL(有时多达数百个)来暴露 API 功能。

6400

Salesforce Integration 概览(五) Remote Call-In(远程操作 外部->salesforce)

对Salesforce调用是否要求远程进程继续处理之前等待响应?...此行为可以更改为“全有或全无”行为。使用restapi复合资源一个API调用中进行一系列更新。 •REST复合资源使用这些REST API资源单个API调用中执行多个操作。...此方法是SOAP API替代方法,通常仅在必须满足以下附加要求情况下使用。 •需要全面的事务支持(例如,一个事务中创建帐户、联系人和机会)。...必要情况下可以引入中间件,中间件可用于提供错误处理和恢复逻辑。 恢复—如果服务质量要求要求,则需要创建自定义重试机制。在这种情况下,确保幂等设计特性非常重要。...虽然可以Salesforce中管理其中一些情况(特别是定制SOAP和REST服务情况下),但我们建议远程系统(或中间件)管理错误处理和幂等设计

2.7K20

RPC 与 REST 介绍及比较

REST(Representational state transfer), 表现层状态转移 设计API,使用路径定位资源,方法定义操作,通过Content-Type和Accept来协商资源类型...可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信。REST架构对资源操作包括获取、创建、修改和删除资源操作正好对应HTTP协议提供GET、POST、PUT和DELETE方法。...(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作接口,仅通过HTTP方法,就可以成对数据所有增删查改工作。         ...RESTful即实现REST设计风格一种架构,如RESTful APIREST设计风格API)     (5) 风格         利用HTTP方法让接口统一化         利用HTTP...设计API,决定使用哪种形式,得先考虑所设计API将会被谁使用:     如果是关注于对象和资源项目,需要对接各种不同端和使用者,需要便于使用和阅读文档,那么适合使用REST     如果是面向行为动作

22410

RESTFUL API 安全设计指南

RESTful web services 概念核心就是“资源”。 资源可以用 URI 来表示。...http://xx.com/api/orders GET 获取某个特定资源信息 http://xx.com/api/orders/123 POST 创建资源...,身份认证方式,身份认证方式有很多种,第一种便是http basic,这种方式客户端要求简单,服务端实现也非常简单,只需简单配置apache等web服务器即可实现,所以对于简单服务来说还是挺方便...是从url获取为/rest/v1/interface/eth0,最后计算sign值,之后和url中sign值做校验。...rest api接口一般会用到GET,POST,PUT,DELETE,未实现方法则直接返回方法不允许,对于POST,PUT方法数据采用json格式,并且进入逻辑前验证是否json,不合法返回json

1.5K20

花5分钟看这篇之前,你才发现你不懂RESTful

现在,RESTful是目前最流行接口设计规范,很多公司有着广泛应用,其中Github API设计就是很标准RESTful API,你可以参考学习。...一、REST介绍 REST涉及一些概念性东西可能比较多,实战RESTful API之前,要对REST相关知识有个系统认知。...fragment: 锚点,定位到页面的资源 我们设计APIURLpath是需要认真考虑,而RESTful对path设计做了一些规范,通常一个RESTful APIpath组成如下: /{version...而RESTful风格API要求URL上都以名词方式出现,从几种请求方式上就可以看出想要进行操作,这点与非RESTful风格API形成鲜明对比。...所以,当你或你们技术团队设计API时候,如果使用场景和REST风格很匹配,那么你们可以采用RESTful 风格API

95141

【Go API 开发实战 2】RESTful API 介绍

REST 规范中有如下几个核心: REST 中一切实体都被抽象成资源,每个资源有一个唯一标识 —— URI,所有的行为都应该是资源 CRUD 操作 使用标准方法来更改资源状态,常见操作有:...获取账号列表 GET 获取一个具体资源 /users/admin 获取 admin 账号详细信息 POST 创建一个新资源 /users 创建一个新账号 PUT 以整体方式更新一个资源 /users...REST vs RPC 在做 API 服务器开发,很多人都会遇到这个问题 —— 选择 REST 还是 RPC。...低 RPC 不像 REST 那样,每一个操作都要抽象成对资源增删改查,实际开发中,有很多操作很难抽象成资源,比如登录操作。...当然以现有的服务器性能,如果两个系统间调用不是特别频繁,对性能要求不是非常高,以笔者开发经验来看,REST 性能完全可以满足。

1.4K22

API自动化测试指南

API测试 中间服务层是创建诸如Rest-Assured和Postman之类工具“最佳位置” 。 服务测试重点是验证许多小组件交互是否可以集成在一起而不会出现问题。...基本思想是,您正在使用工具进行性能测试,但是针对您API运行例如负载测试之前,需要确保它实际上可以正常工作。因此,您想先进行功能测试,然后可以利用功能测试脚本完成性能测试。...自动化Web服务要问一些好问题: 服务是否以正确值响应? 该行为是否符合最终用户预期要求? 该服务多快将响应发送给用户? 服务可以处理预期和意外用户负载吗?...当围绕REST标准设计服务可以说使该服务“ RESTful”。 REST API由大量资源组成。这称为资源模型,它利用统一资源标识(URI)。...REST API测试(如何创建REST API测试) 什么是JSON JSON代表JavaScript Object Notation,并且被设计为轻量级数据交换格式。

1.7K00

RESTful 接口实现简明指南

REST 架构链接应该是这个样子: URL 中不应该出现任何表示操作动词,链接只用于对应资源; URL 中应该单复数区分,推荐实践是永远只用复数;比如 GET /api/users 表示获取用户列表...PATCH 作用在于如果一个资源有很多字段,进行局部更新,只需要传入需要修改字段即可。否则在用 PUT 情况下,你不得不将整个资源模型全都发送回服务器,造成网络资源极大浪费。...三、分页、过滤 REST 风格接口地址,表示可能是单个资源,也可能是资源集合;当我们需要访问资源集合时,设计良好接口应当接受参数,允许只返回满足某些特定条件资源列表。...gender=male 设计合适 API URL,以及选择合适请求方法,可以语义化描述一个 HTTP 请求操作。...接口需要满足基本要求

88110

RESTfulAPI接口设计规范与快速入门

Q: API 服务器设计规范和组合 我们要实现一个API 接口服务器,需要考虑两个方面一个是API设计风格,另外一个是返回数据类型。...此处以Go语言为例, API 开发中常见组合是 REST + JSON 或者 gRPC + Protobuf,其中 REST 和 gRPC 即是API设计风格,而 JSON 和 Protobuf...RESTful API 核心规范 REST 中一切实体都被抽象成资源,每个资源有一个唯一标识 URI ,所有的行为都应该是资源 CRUD 操作 REST 中是无状态,即请求都包含了所有足够完成本次操作依赖信息...2.通常会将日志相关配置记录在配置文件中,解析配置文件后加载日志包初始化函数,来初始化日志实例,供后面的程序调用。...上述功能代码结构中有列出,新加功能将代码放入对应功能目录/文件中,可以使整个项目代码结构更加清晰,非常 有利于后期查找和维护 。 # Linux mkdir -vp .

1.4K40

如何设计出优秀Restful API

REST概念是将API结构分离为操作和资源。使用HTTP方法GET、DELETE、POST和PUT操作资源设计糟糕REST API = 浪费时间!...2 REST API里面的术语 Resource(资源)是指代表某种东西对象,它具有一些与之相关数据,并且可以有一组方法对其进行操作。 例如。...API接口资源应始终为复数,如果我们要访问资源一个实例,我们可以URL中传递id或者name之类。...例如/schools/清华/students,返回所有清华大学学生 POST方法请求服务器在数据库中创建资源,主要是提交Web表单。.../v2/schools/清华 API上加入版本信息可以有效使用户访问正确API,v2是新开发功能,开发阶段,让所有用户访问v1,等开发完成统一切到v2。

1K10

Rest api简介

理解和使用内容协商 我们开发者发送一个 REST API 请求同时,根据应用场景,针对相同资源,可能会期待不同返回形式。 比如,我希望根据用户客户端语言,同一个资源内容可以返回不同语言。...因此,HTTP 响应代码可以保证客户端第一间用最高效方式获知 API 运行结果,并采取相应动作。 下表列出了比较常用响应代码。 表 1....常用 HTTP 响应代码含义 HTTP 响应代码 代码含义 200 已创建,请求成功且服务器已创建了新资源。...,可以帮助我们更好设计 REST API: 批量更新: 当用户需要更新多个资源时候,你打算让开发者一次次发送 HTTP 请求逐个更新吗?...你可以考虑设计 API 时候允许客户同时创建或者更新多个资源

2.1K60
领券