RESTful编程到底是什么?
当前回答
什么是API测试?
API测试利用编程向API发送调用并获得产量。它的测试将被测段视为一个黑盒子。API测试的目的是在将部件协调到应用程序之前确认部件的正确执行和错误处理。
休息API
REST:代表性状态转移。
这是测试人员执行请求和接收响应的功能安排。在REST API中,通过HTTP协议进行交互。REST还允许计算机之间通过网络相互通信。对于发送和接收消息,它涉及使用HTTP方法,并且不像Web服务那样需要严格的消息定义。REST消息通常接受XML或JavaScript对象符号(JSON)形式的表单。
4常用API方法:-
GET:–它提供对资源的只读访问。POST:–用于创建或更新新资源。PUT:–用于更新或替换现有资源或创建新资源。DELETE:–用于删除资源。
手动测试API的步骤:-
要手动使用API,我们可以使用基于浏览器的REST API插件。
安装POSTMAN(Chrome)/REST(Firefox)插件输入API URL选择REST方法选择内容标题输入请求JSON(POST)单击发送它将返回输出响应
自动化REST API的步骤
其他回答
这就是它可能看起来的样子。
创建具有三个财产的用户:
POST /user
fname=John&lname=Doe&age=25
服务器响应:
200 OK
Location: /user/123
以后,您可以检索用户信息:
GET /user/123
服务器响应:
200 OK
<fname>John</fname><lname>Doe</lname><age>25</age>
要修改记录(姓名和年龄将保持不变):
PATCH /user/123
fname=Johnny
要更新记录(因此lname和age将为NULL):
PUT /user/123
fname=Johnny
RESTful编程是关于:
资源由持久标识符标识:URI是当今普遍使用的标识符使用一组常见的动词来操纵资源:HTTP方法是常见的情况-古老的Create、Retrieve、Update、Delete变为POST、GET、PUT和Delete。但REST并不局限于HTTP,它只是目前最常用的传输。为资源检索的实际表示取决于请求,而不是标识符:使用Accept标头来控制是否需要XML、HTTP,甚至是表示资源的Java对象保持对象中的状态并在表示中表示状态在资源表示中表示资源之间的关系:对象之间的链接直接嵌入到表示中资源表示描述了如何使用表示,以及在什么情况下应该以一致的方式丢弃/重新处理表示:HTTP缓存控制头的使用
最后一个可能是REST的后果和整体有效性方面最重要的。总体而言,大多数RESTful讨论似乎都集中在HTTP及其在浏览器中的使用上。我知道R.Fielding在描述导致HTTP的架构和决策时创造了这个术语。他的论文更多的是关于资源的体系结构和缓存能力,而不是HTTP。
如果你真的对RESTful架构是什么以及它为什么工作感兴趣,请读几遍他的论文,并阅读整个内容,而不仅仅是第5章!接下来看看DNS为什么工作。阅读DNS的分级组织以及转介的工作原理。然后阅读并考虑DNS缓存的工作原理。最后,阅读HTTP规范(尤其是RFC2616和RFC3040),并考虑高速缓存的工作方式及其原因。最终,它只会咔嚓一声。当我看到DNS和HTTP之间的相似性时,我得到了最后的启示。在这之后,了解SOA和消息传递接口是可伸缩的就开始了。
我认为,要理解RESTful和SharedNothing架构的架构重要性和性能含义,最重要的技巧是避免被技术和实现细节所困扰。关注谁拥有资源,谁负责创建/维护资源等。然后思考表示、协议和技术。
我会说,RESTful编程是关于创建遵循REST体系结构风格的系统(API)。
我发现M.Elkstein博士的这篇关于REST的精彩、简短且易于理解的教程,并引用了最能回答您问题的重要部分:
学习REST:教程
REST是一种用于设计网络应用程序的架构风格。其思想是,使用RPC或SOAP连接机器,使用简单的HTTP机器之间的呼叫。在许多方面,基于HTTP的万维网本身可以被视为基于REST的架构。RESTful应用程序使用HTTP请求来发布数据(创建和/或更新)、读取数据(例如进行查询)和删除数据。因此,REST对所有四个CRUD(创建/读取/更新/删除)操作使用HTTP。
我认为你不应该因为没有听到堆栈溢出之外的REST而感到愚蠢。。。,我也会遇到同样的情况!;另一个SO问题“为什么REST现在变得越来越大”的答案可能会缓解一些情绪。
RESTful(代表性状态转移)API编程是通过以下5个基本的软件架构风格原则,以任何编程语言编写web应用程序:
资源(数据、信息)。唯一的全局标识符(所有资源都由URI标识)。统一接口-使用简单标准接口(HTTP)。表示-所有通信都是通过表示(例如XML/JSON)完成的无状态(每个请求都是在完全隔离的情况下发生的,这样更容易缓存和负载平衡),
换句话说,您正在通过HTTP编写简单的点对点网络应用程序,该应用程序通过实现RESTful架构使用GET、POST、PUT或DELETE等动词,该架构提出了每个“资源”公开的接口的标准化。以一种简单有效的方式(高度成功、经过验证和分布式架构)使用web的当前特性并不重要。它是SOAP、CORBA和RPC等更复杂机制的替代方案。
RESTful编程符合Web体系结构设计,如果实现得当,它允许您充分利用可扩展的Web基础设施。
REST是一种编写分布式应用程序的架构模式和风格。它不是狭义的编程风格。
说你使用REST风格类似于说你建造了一个特定风格的房子:例如都铎风格或维多利亚风格。REST作为一种软件风格,都铎或维多利亚风格作为一种家居风格,都可以通过构成它们的质量和约束来定义。例如,REST必须具有客户端-服务器分离,其中消息是自我描述的。都铎风格的房屋有重叠的山墙和屋顶,这些山墙和前面的山墙陡峭倾斜。您可以阅读Roy的论文,以了解更多关于构成REST的约束和质量的信息。
与家庭风格不同的REST在持续和实际应用中遇到了困难。这可能是故意的。将其实际实现留给设计者。所以你可以自由地做你想做的事情,只要你满足论文中提出的约束条件,你就可以创建REST系统。
奖金:
整个web都基于REST(或REST基于web)。因此,作为一名web开发人员,您可能需要意识到这一点,尽管编写好的web应用程序并不必要。
推荐文章
- 什么是HTTP“主机”报头?
- 用Python构建最小的插件架构
- 哪个HTTP状态代码表示“尚未准备好,稍后再试”?
- Django REST框架:向ModelSerializer添加额外字段
- 如何阻止恶意代码欺骗“Origin”报头来利用CORS?
- 模式、表和数据库之间的区别是什么?
- 为什么说“HTTP是无状态协议”?
- 我需要HTTP GET请求的内容类型报头吗?
- REST和RPC之间的Web服务差异
- 单页应用:优点和缺点
- 如何让Chrome允许混合内容?
- 正确的方式删除cookies服务器端
- REST DELETE真的是幂等的吗?
- 如何用node.js实现一个安全的REST API
- 如何在Node.js内进行远程REST调用?旋度吗?