首页
学习
活动
专区
圈层
工具
发布

REST API Best practices: Where to put parameters?

在上一篇博客中,包子为您解说了REST设计风格的理论概念,相信有很多同学读完以后会有很多实际的问题需要进一步探讨。在这里,包子为大家转载了一个比较热门的最佳设计实践问题:如何设计REST风格的URI?...从上篇文章里,我们知道URI是HTTP实现下的REST资源ID。URI一般包含了指向资源的路径,以及参数来指定请求获取的特定资源状态。那么到底什么应该是属于URI路径的一部分,而什么又该放入URI呢?...原文链接:http://stackoverflow.com/questions/4024271/rest-api-best-practices-where-to-put-parameters Question...from: Kalle Gustafsson A REST API can have parameters in at least two ways: As part of the URL-path.../api/resource/parametervalue ) As a query argument (i.e. /api/resource?

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

    PUT和POST的区别

    下图是一个示例,修改宠物信息: 图片 POST 请求 POST 请求是 HTTP 协议中的一种请求方法,通常用于创建新的资源或提交数据到服务器进行处理。...POST 请求的一些特点: 可以创建新的资源或提交数据到服务器进行处理。 客户端可以只发送部分资源内容。 如果请求成功,服务器会返回一个表示新资源的 URI。 POST 请求不具有幂等性。...下图是一个示例,新建一个宠物信息: 图片 PUT 和 POST 的区别主要在以下几个方面: 语义不同:PUT 请求通常用于更新或替换服务器上的资源,而 POST 请求通常用于创建新的资源或提交数据到服务器进行处理...使用场景不同:PUT 请求适用于更新完整的资源,比如更新用户信息、文章内容等。而 POST 请求适用于提交数据到服务器进行处理,比如创建新的文章、提交表单等。...如果要更新整个资源,应该使用 PUT 请求;如果要创建新的资源或提交数据到服务器进行处理,应该使用 POST 请求。

    2.6K10

    javaservlet处理四种常用api请求get,put,post,delete

    一般在网站搭建中servlet只需处理post,get请求便足已。本篇注重使用javaweb编写restful风格api,在servlet中对四种常用请求进行处理。   ...在api中对于一个请求要做的通常是提取header参数,提取携带数据(post,put)。在这里已post为例来说明用法。   ...下面是发起的post请求,用python(很简单)写的,该请求既有自定义header参数Bearer,也有携带数据bodys里的内容 import json import requests taken...bodys={'username':'test5','password':'123456'} url='http://localhost:8080/xiaoyanAPI' response=requests.post...(url,data=json.dumps(bodys),headers=headers) print response.text   下面是处理post请求代码 1 protected void doPost

    2.5K20

    用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST

    html 本文介绍的是使用ASP.NET Core建立Richardson成熟度为2级的伪RESTful web API, 本文介绍的是GET和POST....这里GET可以理解为获取(查询)资源, POST为添加资源, PUT为整体更新资源, PATCH为局部更新资源, DELETE为删除资源....GET,所以POST不被允许 406 - Not acceptable,这里涉及到了media type,例如API消费者请求的是application/xml格式的media type,而API只支持...这里可以看到Location Header的uri,通过这个uri,你就可以GET到这个刚刚创建的Country资源,这里我就不测试了。 如果再次执行这个POST操作,看看结果: ?...OK 如果POST到单个资源的地址 如果POST到这个地址 http://localhost:5000/api/countries/{id},  那么, 如果该id的资源不存在, 则应该返回404; 如果该

    2.1K10

    了解 HTTP 的PUT 与 POST方法的综合指南

    HTTP方法,如PUT和POST,是我们在Web应用中处理资源的核心。本文将深入探讨这些方法,分析它们的区别,并帮助你了解在API设置中该何时使用它们。什么是HTTP PUT 方法?...资源处理: 如果资源存在,它将被请求体中的内容完全替换;如果资源不存在,则会创建一个新的资源。因此,如果你想用新的数据完全替换现有的资源,PUT是RESTful API中的首选方法。...PUT与POST的实际应用让我们来看一下这两者如何工作的示例:// PUT示例PUT /users/1{ "id": 1, "name": "Ichiro", "age": 22}这个PUT请求将...PUT和POST的主要区别请求体: PUT发送完整的更新资源。POST发送用于创建新资源的数据。URL使用: PUT直接标识资源。POST指定资源将要去的集合。...幂等性: PUT请求是幂等的(每次结果相同)。POST请求则不是。资源处理: PUT替换整个资源。POST可以部分更新或创建新资源。

    74400

    REST API 的安全认证,从 OAuth 2.0 到 JWT 令牌

    ---- REST 是一种现代架构风格,它定义了一种设计 Web 服务的新方法。...按照 REST 最佳实践开发的服务被称为 “RESTful Web 服务”。 安全性是 RESTful 服务的基石。启用它的方法之一是尽可能内置用户身份验证和授权机制。...当用户输入用户名和密码后,系统会允许登录。但是,默认情况下,系统不知道用户的角色和权限是什么,他们可以访问哪些服务等等。...刷新令牌也有它的过期时间(虽然它比访问令牌长得多),如果一个用户一年没有进入系统,那么很可能会被要求再次输入用户名和密码。...OAuth 2.0 标准取代了基本的身份验证方法,它具有一定的优势,例如用户每次想要进入系统时不用输入用户名和密码。

    3.9K30

    撰写合格的REST API

    稍稍总结了些经验,在这篇文章里讲讲如何撰写「合格的」REST API。 RFC一致性 REST API一般用来将某种资源和允许的对资源的操作暴露给外界,使调用者能够以正确的方式操作资源。...这里,在输入输出的处理上,要符合HTTP/1.1(不久的将来,要符合HTTP/2.0)的RFC,保证接口的一致性。这里主要讲输入的method/headers和输出的status code。...Methods HTTP协议提供了很多methods来操作数据: GET: 获取某个资源,GET操作应该是幂等(idempotence)的,且无副作用。 POST: 创建一个新的资源。...PUT: 替换某个已有的资源。PUT操作虽然有副作用,但其应该是幂等的。 PATCH(RFC5789): 修改某个已有的资源。 DELETE:删除某个资源。DELETE操作有副作用,但也是幂等的。...如果自己手写REST API,一定要注意区分POST/PUT/PATCH/DELETE的应用场景。

    2.1K50

    REST API和SOAP API之间的区别

    这是最常见的请求,每次在浏览器中键入URL并单击return、选择书签或单击锚点引用链接时执行。 对于与RESTful API的编程交互,可以使用十几种或更多的客户端API或工具。...总是会有特定于应用程序的行为,但是我们越能深入到非特定于应用程序的行为中,我们的系统就会越有弹性、更容易访问和更容易维护。 POST 当客户端无法预测要创建的资源的标识时,将使用POST。...当我们雇佣员工、下订单、提交表单等时,我们无法预测服务器将如何命名我们创建的资源。这就是为什么我们将资源的表示发布给处理程序(例如servlet)。服务器将接受输入、验证它、验证用户的凭据等。...短期来看,这似乎是值得的,但随着时间的推移,这些捷径会累积起来,。产生不好的影响 PUT 客户端可以向已知URL发出PUT请求,作为将表示传递回服务器的一种方式,以便执行覆盖操作。...这种区别允许PUT请求具有幂等性,而POST更新不是。

    2.8K10

    REST API和SOAP API之间的区别

    这是最常见的请求,每次在浏览器中键入URL并单击return、选择书签或单击锚点引用链接时执行。 对于与RESTful API的编程交互,可以使用十几种或更多的客户端API或工具。...总是会有特定于应用程序的行为,但是我们越能深入到非特定于应用程序的行为中,我们的系统就会越有弹性、更容易访问和更容易维护。 POST 当客户端无法预测要创建的资源的标识时,将使用POST。...当我们雇佣员工、下订单、提交表单等时,我们无法预测服务器将如何命名我们创建的资源。这就是为什么我们将资源的表示发布给处理程序(例如servlet)。服务器将接受输入、验证它、验证用户的凭据等。...短期来看,这似乎是值得的,但随着时间的推移,这些捷径会累积起来,。产生不好的影响 PUT 客户端可以向已知URL发出PUT请求,作为将表示传递回服务器的一种方式,以便执行覆盖操作。...这种区别允许PUT请求具有幂等性,而POST更新不是。

    2K20

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

    RESTful API 背后的思想是遵循REST 规范中描述的所有架构规则和限制的方式进行开发。然而,实际上,这在实践中基本上是不可能的。 一方面,REST 包含了太多模糊和模棱两可的定义。...REST API 规范能做什么? 尽管存在上面说到的缺点,但使用合理的方法,REST 仍然是创建真正优秀 api 的一个绝佳选择。...因为你通过高质量的 API 规范实现的 api 将会是一致的,具有清晰的结构、良好的文档和高的单元测试覆盖率。 通常,REST API规范与其文档相关联。...catch 到正确的错误信息。...这将使使用你的 API 的开发人员感到轻松,并且肯定比手工填写 REST API 文档模板要好。

    1.5K20

    优雅调试 REST API 的工具

    找到一个超级漂亮同时功能超级强,还是一个 UWP 应用的调试 REST API 工具 点击此地址 下载安装 界面截图 ?...支持对请求设置标题,同时支持分组和工作空间 如我可以对访问逗比服务器添加多个不同的 API 请求 ?...我可以对一个项目的不同功能设置不同的分组,同时还可以切换工作空间 不过切换空间是需要升级为专业版的 当然清真的是这是一个 UWP 程序 我没有收他的红包,所以不好用请到官网喷 ---- 本文会经常更新...,请阅读原文: https://blog.lindexi.com/post/%E4%BC%98%E9%9B%85%E8%B0%83%E8%AF%95-REST-API-%E7%9A%84%E5%...B7%A5%E5%85%B7.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

    1.3K10

    Flink REST API 的设计指南

    Flink REST API 介绍Flink REST API 是 JobManager 提供的 HTTP 接口,用户可以通过 GET、POST 等 REST 定义的方法,请求获取作业、JobManager...非阻塞的 Flink REST API 设计要点关于拓展 Flink REST API 的方法,我们可以在 Flink 官网文档、各类技术社区文章中得到详细的指引,因而这里不再赘述基础的细节,而是更侧重于讲解遇到的一些常见的问题和解决方案...→ TaskManager → 用户定义的 Task请求体、返回体设计通常对于接受 GET 方法的 REST API 而言,可以直接使用 EmptyRequestBody 类作为请求体的结构,方便快捷...但对于 POST 方法的 API,我们通常需要实现 RequestBody 接口,来定义该 REST 接口的请求体。...REST Handler 设计handler 是一个 REST API 接口的执行者,我们可以通过实现 handleRequest 方法来定义请求的处理逻辑。

    2.2K20
    领券