Questions tagged «rest»

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

4
REST API-是否有DTO?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 改善这个问题 我目前正在为一个项目创建REST-API,并且一直在阅读有关最佳实践的文章。许多人似乎反对DTO并只是公开域模型,而其他人似乎认为DTO(或用户模型或任何您想称呼的东西)是不好的做法。我个人认为这篇文章很有道理。 但是,我还了解了所有其他映射代码,域模型可能与其DTO对应对象100%相同的DTO的缺点。 我们的API主要是为了使其他客户端可以使用数据而创建的,但是,如果操作正确,我们还将尽可能地将其用于我们自己的Web GUI。 问题是我们可能不想将所有域数据公开给其他客户端用户。许多数据仅在我们自己的Web应用程序中才有意义。另外,我们可能不希望在所有情况下都公开有关某个对象的所有数据,尤其是与其他对象的关系等等。例如,如果我们公开一个特定对象的列表,则我们不一定要公开整个对象层次结构。这样就不会暴露对象的子对象,而是可以通过链接(阴影)来发现它。 我应该如何解决这个问题?我正在考虑在我们的域模型上使用Jackson混合来控制在不同情况下将公开哪些数据。还是考虑到DTO的缺点和争议,我们是否应该一路使用DTO?
154 java  spring  rest  dto  hateoas 


11
为什么要使用REST而不是基于SOAP的服务?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 7年前关闭。 改善这个问题 今天参加了有关REST的一个有趣的演示,但是,我想不出一个单独的原因(也没有一个人提出),为​​什么REST比基于SOAP的服务栈更好或更简单地使用和实现。 为什么“现实世界”中的任何人都使用REST而不是基于SOAP的服务的原因有哪些?
153 web-services  rest 

5
约定应返回哪些REST PUT / POST / DELETE调用?
根据“ REST意识形态”,对于PUT / POST / DELETE请求,响应正文中应包含什么? 那么返回码呢?是否HTTP_OK足够? 制定此类约定的原因是什么? 我找到了一篇不错的文章来描述POST / PUT的区别:POST vs PUT, 但是它仍然无法回答我的问题。
153 rest  http  post  http-delete 

4
使用一长串查询参数设计RESTful查询API
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 2年前关闭。 改善这个问题 我需要设计一个RESTful查询API,该API根据一些过滤器返回一组对象。通常的HTTP方法是GET。唯一的问题是,它至少可以有十二个过滤器,并且如果我们将所有过滤器都作为查询参数传递,则URL可能会很长(足够长以被某些防火墙阻止)。 减少参数数量不是一种选择。 我可以想到的一种替代方法是在URI上使用POST方法,并将过滤器作为POST正文的一部分发送。这是否反对RESTfull(进行POST调用以查询数据)。 有人有更好的设计建议吗?


8
如何在REST API中为“尚未就绪,请稍后再试”选择HTTP状态代码?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 改善这个问题 我正在开发RESTful API,在其中http://server/thingyapi/thingyblob/1234返回与要下载的东西#1234相关的文件(又称“ blob”)。但是可能是在服务器中不存在该文件时发出请求,但肯定以后会提供该文件。服务器中有一个批处理过程,可为所有事物生成所有blob。Thingy 1234已经存在,并且除blob之外的其他数据已经可用。服务器还没有生成东西1234的斑点。 我不想返回404;那是针对不存在的事物。这是一个存在的问题,但尚未生成它的斑点。Kinda喜欢YouTube影片中的「处理中」。我也不认为重定向代码是合适的。没有尝试使用的“其他” URL。 在这种情况下返回的正确HTTP状态代码是什么?

11
Java中的RESTful调用
我将用Java进行RESTful调用。但是,我不知道如何拨打电话。我是否需要使用URLConnection或其他?谁能帮我。谢谢。
150 java  rest 

13
在REST中进行交易?
我想知道您如何在REST中实现以下用例。是否有可能在不损害概念模型的情况下做? 在单个事务范围内读取或更新多个资源。例如,将$ 100从Bob的银行帐户转入John的帐户。 据我所知,实现这一目标的唯一方法是作弊。您可以发布到与John或Bob关联的资源,并使用单个事务执行整个操作。就我而言,这破坏了REST架构,因为您实质上是通过POST隧道传送RPC调用,而不是真正在单个资源上进行操作。
147 rest 

7
Node.js package.json主要参数
我已经做了很多搜索。但是,仍然对Node.js的package.json中的主要参数有疑问。 填写该字段有什么帮助?用另一种方式问,如果此字段出现,是否可以以其他样式启动模块? 我可以在主要参数中填写多个脚本吗?如果是,它们是否将作为两个线程启动?如果没有,如何在模块中启动两个脚本并使它们并行运行? 我知道第二个问题很奇怪。这是因为我在OpenShift上托管了Node.js应用程序,但是该应用程序包含两个主要组件。一种是REST API,一种是通知传递服务。 我担心如果将通知API实施为单个线程,则通知传递过程将阻止REST API。但是,它们必须连接到相同的MongoDB卡式盒。此外,如果可能的话,两个组件都可以在同一个齿轮中使用,我想节省一个齿轮。 欢迎任何建议。

7
Django REST框架:向ModelSerializer添加其他字段
我想序列化一个模型,但想包含一个附加字段,该字段要求在要序列化的模型实例上进行一些数据库查找: class FooSerializer(serializers.ModelSerializer): my_field = ... # result of some database queries on the input Foo object class Meta: model = Foo fields = ('id', 'name', 'myfield') 什么是正确的方法?我看到您可以将额外的“上下文”传递给序列化程序,是在上下文字典中传递附加字段的正确答案吗?使用这种方法,获取我需要的字段的逻辑不会与序列化程序定义完全独立,这是理想的,因为每个序列化实例都需要my_field。在DRF序列化程序文档的其他地方,它表示 “额外字段可以对应于模型上的任何属性或可调用的属性”。我所说的是多余的领域吗?我应该在Foo的模型定义中定义一个返回my_field值的函数,并在序列化程序中将my_field连接到该可调用项吗?看起来像什么? 在此先感谢您,如有必要,我们很乐意澄清问题。

4
如何使用Spring RestTemplate发布表单数据?
我想将以下(工作)curl代码段转换为RestTemplate调用: curl -i -X POST -d "email=first.last@example.com" https://app.example.com/hr/email 如何正确传递email参数?以下代码导致404 Not Found响应: String url = "https://app.example.com/hr/email"; Map<String, String> params = new HashMap<String, String>(); params.put("email", "first.last@example.com"); RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> response = restTemplate.postForEntity( url, params, String.class ); 我试图在PostMan中制定正确的调用,并且可以通过在主体中将email参数指定为“ form-data”参数来使其正常工作。在RestTemplate中实现此功能的正确方法是什么?

5
Netflix或Twitter样式的Web服务是否应使用REST或SOAP?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我已经实现了两种REST服务:Twitter和Netflix。两次,我都在努力寻找将这些服务公开为REST而不是SOAP的决策所涉及的用途和逻辑。我希望有人能帮助我了解我所缺少的内容,并解释为什么将REST用作此类服务的服务实现。 实施REST服务比实施SOAP服务花费的时间无限长。存在用于所有现代语言/框架/平台的工具,这些工具可以在WSDL中读取并输出代理类和客户端。REST服务的实现是手工完成的,并且可以通过阅读文档来实现。此外,在实现这两项服务时,您必须“猜测”由于没有真正的架构或参考文档,管道中将返回的内容。 为什么要编写仍然返回XML的REST服务?唯一的区别是,使用REST时,您不知道每个元素/属性代表的类型-您可以自己实现它,并希望有一天不会在您认为永远是int的字段中遇到字符串。SOAP使用WSDL定义数据结构,因此这是理所当然的。 我听说过有人抱怨说,使用SOAP可能会使SOAP信封变得“花钱”。在当今时代,我们真的需要担心几个字节吗? 我听到过这样的论点:使用REST,您可以将URL弹出浏览器并查看数据。当然,如果您的REST服务使用的是简单身份验证或不使用身份验证。例如,Netflix服务使用OAuth,它要求您对事物进行签名和编码,然后才能提交请求。 为什么每个资源都需要一个“可读” URL?如果我们使用工具来实现服务,那么我们真的关心实际的URL吗?
145 rest  soap 

2
AngularJS $ resource RESTful示例
我想使用$ resource调用我的RESTful Web服务(我仍在使用它),但是我想知道我是否首先正确地使用了AngularJS脚本。 待办事项DTO具有: {id, order, content, done} :cmd因此,我可以调用api/1/todo/reset以清除数据库中的todo表。 这是带有我的理解注释的代码: function TodoService($resource) { var src = $resource('api/1/todo/:id:cmd', {id: "@id", cmd: "@cmd"}, //parameters default { ListTodos: { method: "GET", params: {} }, GetTodo: { method: "GET", params: { id: 0 } }, CreateTodo: { method: "POST", params: { content: "", order: …

8
以RESTful方式在资源上调用服务器端方法
请记住,我对REST有基本的了解。假设我有以下网址: http://api.animals.com/v1/dogs/1/ 现在,我想让服务器将狗叫起来。只有服务器知道如何执行此操作。假设我想让它在CRON作业上运行,该作业会使狗在以后的永恒中每10分钟吠叫一次。这个电话看起来像什么?我有点想这样做: 网址请求: ACTION http://api.animals.com/v1/dogs/1/ 在请求正文中: {"action":"bark"} 在为构造自己的HTTP方法而生我的气之前,请帮助我,让我更好地了解如何以RESTful方式调用服务器端方法。:) 编辑澄清 有关“树皮”方法功能的更多说明。以下是一些可能导致结构不同的API调用的选项: 树皮只会向dog.email发送电子邮件,却什么也没记录。 bark将电子邮件发送到dog.email,并将dog.barkCount递增1。 树皮会在树皮发生时使用bark.timestamp记录创建一个新的“树皮”记录。它还会将dog.barkCount递增1。 吠声运行系统命令以从Github中获取最新版本的狗码。然后,它将一条文本消息发送到dog.owner,告诉他们新的狗代码正在生产中。

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.