Questions tagged «rest»

REST(表示状态传输)是一种用于分布式超媒体系统(例如,万维网)的软件体系结构。相对于RPC体系结构(例如SOAP),由于客户端与服务器之间的固有解耦(由于异构系统之间具有统一的接口),它的流行度有所提高。

13
REST Web应用程序中的分页
这是对该问题的更一般化的表述(省去了Rails的特定部分) 我不确定如何在RESTful Web应用程序中的资源上实现分页。假设我有一个名为的资源products,您认为以下哪种方法是最好的方法,以及原因: 1.仅使用查询字符串 例如。http://application/products?page=2&sort_by=date&sort_how=asc 这里的问题是我无法使用全页缓存,而且URL也不是很干净且容易记住。 2.使用页面作为资源和查询字符串进行排序 例如。http://application/products/page/2?sort_by=date&sort_how=asc 在这种情况下,看到的问题http://application/products/pages/1是不是唯一的资源,因为使用sort_by=price会产生完全不同的结果,而我仍然无法使用页面缓存。 3.使用页面作为资源和URL段进行排序 例如。http://application/products/by-date/page/2 我个人认为使用此方法没有问题,但是有人警告我这不是一个好方法(他没有给出原因,因此,如果您知道为什么不建议这样做,请告诉我) 任何建议,意见,批评都将受到欢迎。谢谢。
329 rest  sorting  pagination 

16
对Python REST(Web服务)框架的建议?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 在服务器端使用这些基于Python的不同REST框架的建议列表中是否可以编写自己的RESTful API?最好有优点和缺点。 请随时在此处添加建议。:)

12
在PHP中调用REST API
我们的客户给了我一个REST API,我需要对其进行PHP调用。但事实上,API随附的文档非常有限,所以我真的不知道如何调用该服务。 我尝试过使用Google,但唯一出现的是已经过期的Yahoo! 有关如何调用服务的教程。没有提及标题或任何深度信息。 是否有关于如何调用REST API的任何体面的信息,或有关它的一些文档?因为即使在W3schools上,它们也仅描述SOAP方法。在PHP中使用rest API有哪些不同的选择?
317 php  web-services  api  rest 

12
HTTP和REST有什么区别?
在阅读了很多关于REST和SOAP之间的区别之后,我得到了REST只是HTTP的另一个说法的印象。有人可以解释一下REST添加到HTTP的功能吗? 注意:我不是在寻找REST与SOAP的比较。 更新:感谢您的回答。现在对我来说很清楚,REST只是关于如何使用HTTP的一组规则。因此,我发布了有关这些约定的优点的后续报告。 注意:我现在掌握了REST的含义;正如Emil Ivanov所说,REST意味着按照原意使用HTTP。但是,我不确定这是否值得单独使用,我当然也不会对此大肆宣传。
303 http  rest 

7
REST嵌套资源的最佳做法是什么?
据我所知,每个单独的资源应该只有一条规范路径。因此,在以下示例中,好的URL模式将是什么? 以公司的其余代表为例。在此假设示例中,每个公司拥有 0个或多个部门,每个部门拥有 0个或多个员工。 没有关联公司就不可能存在部门。 没有相关部门,员工就不会存在。 现在,我将找到资源模式的自然表示形式。 /companies 公司集合 -接受为新公司投入的资金。获取整个收藏集。 /companies/{companyId}一家个人公司。接受GET,PUT和DELETE /companies/{companyId}/departments接受新项目的POST。(在公司内创建部门。) /companies/{companyId}/departments/{departmentId}/ /companies/{companyId}/departments/{departmentId}/employees /companies/{companyId}/departments/{departmentId}/employees/{empId} 在每个部分都有这些限制的情况下,我觉得如果嵌套得很深,这是有意义的。 但是,如果要列出(GET)所有公司的所有员工,就会遇到困难。 资源模式将最紧密地映射到/employees(所有员工的集合) 这是否意味着我/employees/{empId}也应该拥有,因为如果是这样,那么有两个URI可以获取相同的资源? 或可能应该将整个架构展平,但这意味着员工是嵌套的顶级对象。 从根本/employees/?company={companyId}&department={deptId}上讲,与最深层的嵌套模式一样,返回的员工视图完全相同。 URL模式的最佳实践是什么,其中资源由其他资源拥有,但应该可单独查询?
301 rest  api-design 

4
如何使用cURL发送Cookies?
我读到发送带有卷曲的cookie可行,但不适用于我。 我有一个REST端点为: class LoginResource(restful.Resource): def get(self): print(session) if 'USER_TOKEN' in session: return 'OK' return 'not authorized', 401 当我尝试以以下方式访问时: curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/ * About to connect() to 127.0.0.1 port 5000 (#0) * Trying 127.0.0.1... * connected * Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0) > GET / …

11
API分页最佳做法
我希望获得一些帮助,以我正在构建的分页API处理奇怪的边缘情况。 像许多API一样,这一分页会产生很大的结果。如果查询/ foos,将得到100个结果(即foo#1-100),以及指向/ foos?page = 2的链接,该链接应返回foo#101-200。 不幸的是,如果在API使用方进行下一个查询之前从数据集中删除foo#10,则/ foos?page = 2将偏移100并返回foos#102-201。 对于尝试提取所有foo的API使用者来说,这是一个问题-他们将不会收到foo#101。 处理此问题的最佳做法是什么?我们希望使其尽可能轻巧(即避免处理API请求的会话)。其他API的示例将不胜感激!

7
如何在RESTful API中处理多对多关系?
假设您有2个实体,Player和Team,其中玩家可以在多个团队中。在我的数据模型中,我为每个实体都有一个表,以及一个用于维护关系的联接表。Hibernate很擅长处理此问题,但是如何在RESTful API中公开这种关系? 我可以想到几种方法。首先,我可能让每个实体包含另一个实体的列表,因此Player对象将具有其所属的团队的列表,并且每个Team对象将具有一个属于其的Player的列表。因此,要将玩家添加到团队中,您只需将玩家的表示发布到端点,例如POST /player或/team带有适当对象作为请求负载的POST 。对我来说,这似乎是最“ RESTful”的,但感觉有点奇怪。 /api/team/0: { name: 'Boston Celtics', logo: '/img/Celtics.png', players: [ '/api/player/20', '/api/player/5', '/api/player/34' ] } /api/player/20: { pk: 20, name: 'Ray Allen', birth: '1975-07-20T02:00:00Z', team: '/api/team/0' } 我可以想到的另一种方式是将关系本身作为一种资源公开。因此,要查看给定团队中所有球员的列表,您可以执行GET /playerteam/team/{id}或类似的操作,然后获取PlayerTeam实体的列表。要将玩家添加到团队中,请/playerteam使用适当构建的PlayerTeam实体作为有效载荷进行POST 。 /api/team/0: { name: 'Boston Celtics', logo: '/img/Celtics.png' } /api/player/20: { pk: 20, name: 'Ray Allen', …

21
如何在翻新请求的正文中发布原始的整个JSON?
可能以前曾问过这个问题,但没有明确回答。如何将原始的整个JSON发布到翻新请求的正文中? 在这里看到类似的问题。还是这个答案正确,它必须是形式url编码并作为字段传递?我真的希望不要,因为我要连接的服务只是在帖子正文中期待原始JSON。它们没有设置为寻找JSON数据的特定字段。 我只想用其余的一劳永逸地澄清一下。一个人回答不使用翻新。另一个不确定语法。另一个人认为是可以的,但前提是它的形式必须经过url编码并放在字段中(在我的情况下这是不可接受的)。不,我无法为我的Android客户端重新编码所有服务。是的,在大型项目中发布原始JSON而不是将JSON内容作为字段属性值传递是很常见的。让我们做对并继续前进。有人可以指出说明该操作的文档或示例吗?或提供一个有效的理由说明为什么/不应该这样做。 更新:我可以100%肯定地说一件事。您可以在Google的Volley中做到这一点。它是内置的。我们可以在翻新中做到这一点吗?

9
如何创建不带动词的REST URL?
我正在努力确定如何设计静态URL。我全力支持使用带有名词而不是动词的URL的宁静方法,因为它不知道如何做到这一点。 我们正在创建一项服务以实现财务计算器。计算器带有一系列参数,我们将通过CSV文件上传这些参数。用例将涉及: 上载新参数 获取最新参数 获取给定营业日期的参数 激活一组参数 验证一组参数 我收集的宁静方法是使用以下类型的URL: /parameters /parameters/12-23-2009 您可以使用以下方法实现前三个用例: POST,您将参数文件包含在发布请求中 GET第一个URL 获取第二个URL 但是,如何在没有动词的情况下使用第4和第5个用例呢?您不需要以下网址: /parameters/ID/activate /parameters/ID/validate ??
283 rest  restful-url 

13
何时使用@QueryParam和@PathParam
我不是在问这里已经问过的问题: @PathParam和@QueryParam有什么区别 这是一个“最佳做法”或约定俗成的问题。 当你使用@PathParamVS @QueryParam。 我能想到的决定可能是使用两者来区分信息模式。让我在下面说明我的LTPO-不够完美。 可以为信息类别保留PathParam的使用,它很好地属于信息树的一个分支。PathParam可用于向下钻取实体类层次结构。 而QueryParam可以保留用于指定属性以定位类的实例。 例如, /Vehicle/Car?registration=123 /House/Colonial?region=newengland /category?instance @GET @Path("/employee/{dept}") Patient getEmployee(@PathParam("dept")Long dept, @QueryParam("id")Long id) ; 与 /category/instance @GET @Path("/employee/{dept}/{id}") Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ; 与 ?category+instance @GET @Path("/employee") Patient getEmployee(@QueryParam("dept")Long dept, @QueryParam("id")Long id) ; 我认为这样做没有标准惯例。在那儿?但是,我想听听人们如何使用PathParam和QueryParam来区分他们的信息,就像我上面举例说明的那样。我也很想听听这种做法背后的原因。
276 java  rest  jax-rs 

6
我应该在REST API中使用PATCH还是PUT?
我想使用适合以下情况的方法设计其余端点。 有一个小组。每个组都有一个状态。该组可以由管理员激活或停用。 我应该将终点设计为 PUT /groups/api/v1/groups/{group id}/status/activate 要么 PATCH /groups/api/v1/groups/{group id} with request body like {action:activate|deactivate}

8
如何在php中获取POST正文?
我将以下内容作为POST提交到php页面: {a:1} 这是请求(POST请求)的主体。 在php中,我该怎么做才能提取该值? var_dump($_POST); 不是解决方案,不起作用。
273 php  rest  post 

4
REST响应代码以获取无效数据
在以下情况下,应将什么响应代码传递给客户端? 用户注册时传递的数据无效,例如电子邮件格式错误 用户名/电子邮件已经存在 我选择了403。我还发现我觉得可以使用。 维基百科: 412先决条件失败:服务器不满足请求者提出的先决条件之一 如果我不使用403,建议输入代码。
272 http  rest  jax-rs 

12
Spring RestTemplate GET与参数
我必须打一个REST电话,其中包括自定义标头和查询参数。我只设置HttpEntity标题(没有正文),并且使用RestTemplate.exchange()如下方法: HttpHeaders headers = new HttpHeaders(); headers.set("Accept", "application/json"); Map<String, String> params = new HashMap<String, String>(); params.put("msisdn", msisdn); params.put("email", email); params.put("clientVersion", clientVersion); params.put("clientType", clientType); params.put("issuerName", issuerName); params.put("applicationName", applicationName); HttpEntity entity = new HttpEntity(headers); HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class, params); 这在客户端失败,dispatcher servlet因为无法将请求解析为处理程序。调试完成后,似乎没有发送请求参数。 当我POST使用请求正文和无查询参数进行交换时,它工作正常。 有人有什么想法吗?
266 java  spring  rest 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.