Questions tagged «rest»

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

4
从REST Web服务向客户端发送文件的正确方法是什么?
我刚刚开始开发REST服务,但是遇到了一个困难的情况:将文件从REST服务发送到客户端。到目前为止,我已经掌握了如何发送简单数据类型(字符串,整数等)的窍门,但是发送文件却是另一回事,因为存在太多的文件格式,我什至不知道从哪里开始。我的REST服务是在Java上完成的,并且我正在使用Jersey,我正在使用JSON格式发送所有数据。 我已经读过有关base64编码的信息,有人说这是一种好技术,而其他人则说这不是因为文件大小问题。正确的方法是什么?这是我项目中一个简单的资源类的样子: import java.sql.SQLException; import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Request; import javax.ws.rs.core.UriInfo; import com.mx.ipn.escom.testerRest.dao.TemaDao; import com.mx.ipn.escom.testerRest.modelo.Tema; @Path("/temas") public class TemaResource { @GET @Produces({MediaType.APPLICATION_JSON}) public List<Tema> getTemas() throws SQLException{ TemaDao temaDao = new TemaDao(); List<Tema> temas=temaDao.getTemas(); temaDao.terminarSesion(); return temas; } } 我猜发送文件的代码是这样的: import …
103 java  json  web-services  rest  jersey 

16
System.Net.Http:名称空间中缺少?(使用.net 4.5)
TL; DR:我是这种语言的新手,不知道我在做什么 到目前为止,这是我的课程: using System; using System.Collections.Generic; using System.Net.Http; using System.Web; using System.Net; using System.IO; public class MyClass { private const string URL = "https://sub.domain.com/objects.json?api_key=123"; private const string data = @"{""object"":{""name"":""Title""}}"; public static void CreateObject() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = data.Length; StreamWriter …
102 c#  api  rest  post 

6
Spring Boot Rest Controller如何返回不同的HTTP状态代码?
我将Spring Boot用于简单的REST API,如果出现故障,我想返回正确的HTTP状态代码。 @RequestMapping(value="/rawdata/", method = RequestMethod.PUT) @ResponseBody @ResponseStatus( HttpStatus.OK ) public RestModel create(@RequestBody String data) { // code ommitted.. // how do i return a correct status code if something fails? } 作为Spring和Spring Boot的新手,基本问题是当出现问题或失败时如何返回不同的状态代码?
102 spring  rest  spring-boot 

1
流资源如何适合RESTful范式?
借助RESTful服务,您可以创建,读取,更新和删除资源。当您处理诸如数据库资产之类的东西时,这一切都很好-但是这如何转换为流数据?(或者是?)例如,对于视频,将每一帧都视为一次应查询的资源似乎很愚蠢。相反,我会建立一个套接字连接并流处理一系列框架。但这是否打破了RESTful范式?如果我想倒带或快进该流怎么办?这在RESTful范式中是否可能?那么:流资源如何适合RESTful范式? 作为实现的问题,我准备创建这样的流数据服务,并且我想确保自己以“最佳方式”进行操作。我敢肯定这个问题已经解决了。有人可以指出我的好材料吗?
101 rest  streaming  theory 

9
Websocket API取代REST API?
我有一个应用程序,其主要功能通过websocket或长时间轮询实时运行。 但是,大多数站点都是以RESTful方式编写的,这对将来的应用程序和其他客户端非常有用。但是,我正在考虑从REST过渡到用于所有站点功能的websocket API。这将使我更容易将实时功能集成到网站的所有部分。这会增加构建应用程序或移动客户端的难度吗? 我发现有些人已经在做这样的事情:SocketStream


6
GraphQL有什么缺点吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 12个月前关闭。 改善这个问题 关于GraphQL的所有文章都将告诉您它的美妙之处,但是它有什么缺点或缺点?谢谢。

7
Amazon S3更改文件下载名称
我将文件存储在S3上,并使用GUID作为键名。 我正在使用预先签名的URL按照S3 REST API进行下载 我将原始文件名存储在自己的数据库中。当用户单击以从我的Web应用程序下载文件时,我想返回其原始文件名,但是目前他们所获得的只是一个GUID。我该如何实现? 我的Web应用程序位于salesforce中,因此我没有太多控制权来执行响应。由于调控器的限制,所有文件都重定向到Web服务器,然后重命名。 我可以使用一些HTML重定向,元刷新,Javascript吗?有什么方法可以更改S3的下载文件名(我唯一想到的就是将对象更改为新名称,然后下载并删除)。 我想避免为每个用户创建存储桶,因为我们会有很多用户,但仍然不能保证每个存储桶中的每个文件都具有唯一的名称 还有其他解决方案吗?

27
“字段需要找不到类型的bean。” 使用mongodb的错误Spring Restful API
所以我在接下来的几周里一直在学习Spring,一直在关注本教程 构建RESTful Web服务 在我尝试将其集成到mongodb之前,一切都很好。所以我按照本教程。 使用MongoDB访问数据 但是我的做法部分仍然是使用第一个。所以我的项目目录结构是这样的。 src/ ├── main/ │ └── java/ | ├── model/ | | └── User.java | ├── rest/ | | ├── Application.java | | ├── IndexController.java | | └── UsersController.java | └── service/ | └── UserService.java └── resources/ └── application.properties 这是我的模型/User.java文件 package main.java.model; import org.springframework.data.annotation.Id; import …
101 java  spring  mongodb  rest 


9
REST和RPC之间的Web服务差异
我有一个Web服务,它接受JSON参数并具有方法的特定URL,例如: http://IP:PORT/API/getAllData?p={JSON} 这绝对不是REST,因为它不是无状态的。它考虑了cookie并具有自己的会话。 是RPC吗?RPC和REST有什么区别?
100 web-services  rest  rpc 

9
REST API真的是RPC吗?罗伊·菲尔丁(Roy Fielding)似乎这么认为
我以为我对REST了解的很多知识显然是错误的-而且我并不孤单。这个问题的引入时间很长,但是由于信息有点分散,因此似乎很有必要。如果您已经熟悉此主题,那么实际问题就在最后。 从Roy Fielding的REST API的第一段开始,它必须是超文本驱动的,很明显,他认为自己的工作被广泛误解了: 人们对将任何基于HTTP的接口称为REST API的人数感到沮丧。今天的示例是SocialSite REST API。那就是RPC。它尖叫RPC。显示器上的耦合太多,因此应给定X等级。 字段继续列出了REST API的几个属性。他们中的一些人似乎与SO和其他论坛上的常规做法和常规建议背道而驰。例如: 输入REST API时,除了初始URI(书签)和适合目标受众(即,可能会使用该API的任何客户端都希望理解)的一组标准化媒体类型外,没有其他先验知识。... REST API不得定义固定的资源名称或层次结构(客户端和服务器的明显结合)。... REST API应该花费几乎所有的描述性精力来定义用于表示资源和驱动应用程序状态的媒体类型,或者为现有标准媒体类型定义扩展关系名称和/或启用超文本的标记。... “超文本”的概念起着核心作用-比URI结构或HTTP动词的含义要重要得多。在以下注释之一中定义了“超文本”: 当我[Fielding]说超文本时,我的意思是信息和控件的同时呈现,以使该信息成为用户(或自动机)通过其获得选择并选择动作的能力。超媒体只是文本在媒体流中包含时间锚点的扩展。大多数研究人员都放弃了这一区别。 在浏览器中,超文本不需要是HTML。当机器了解数据格式和关系类型时,它们可以跟随链接。 我正在猜测,但是上面的前两点似乎表明Foo资源的API文档(如下所示)导致客户端和服务器之间的紧密耦合,并且在RESTful系统中没有位置。 GET /foos/{id} # read a Foo POST /foos/{id} # create a Foo PUT /foos/{id} # update a Foo 相反,应该通过(例如)对/ foos发出GET请求来强制代理发现所有Foos的URI。(这些URI可能遵循上面的模式,但这不重要。)响应使用一种媒体类型,该媒体类型能够传达如何访问每个项目以及如何执行每个项目,从而导致上面的第三点。因此,API文档应集中于解释如何解释响应中包含的超文本。 此外,每次请求Foo资源的URI时,响应都包含代理程序发现如何进行操作所需的所有信息,例如,通过其URI访问关联资源和父资源,或在创建后采取行动/删除资源。 整个系统的关键在于,响应由媒体类型中包含的超文本组成,该媒体类型本身会传达给代理选项以进行处理。这与浏览器为人类工作的方式没有什么不同。 但这只是我在这个特定时刻的最佳猜测。 菲尔丁发表了一篇后续文章,他在评论中回应了批评,即他的讨论过于抽象,缺乏实例且行话丰富: 其他人将尝试以更直接的方式或适用于当今某些实际问题的方式来解读我所写的内容。我可能不会,因为我太忙于处理下一个主题,准备会议,编写另一个标准,前往某个遥远的地方,或者只是做些让我觉得自己已经赚到了薪水的小事。 因此,针对REST专家的两个简单问题是,他们具有实用的思维方式:如何解释Fielding在说什么,以及在记录/实现REST API时如何将其付诸实践? 编辑:这个问题是一个例子,说明如果您不知道所谈论的内容,那么学习一些东西就会有多困难。在这种情况下,名称为“作为应用程序状态引擎的超媒体”(HATEOAS)。
99 rest  hateoas 

3
RESTful后端的Ember.js或Backbone.js [关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我已经知道ember.js是一种与ribs.js相比更为繁重的方法。我读了很多有关这两者的文章。 我问自己,哪个框架更容易作为Rails后端的前端。对于bone.js,我看到了不同的方法来调用rest后端。对于余烬来说,我似乎必须包括更多的库,例如“数据”或“资源”。为什么要为此设置两个库? 那么,更好的选择是什么呢?也有很多示例将前端与后端连接起来。后端REST调用的一个很好的工作示例是: URI:../restapi/topics GET身份验证凭据:admin / secret格式:json

3
GRPC与REST有何不同?
我正在阅读有关GRPC的解释,此图很有趣: 传输层如何工作?如果通过网络...为什么将其称为RPC?更重要的是,这与为服务层(客户端中具有发出http请求的方法的类)实现API的REST有何不同?
98 rest  grpc 

8
删除一堆项目的宁静方法
在REST的Wiki文章中 指出,如果使用http://example.com/resources DELETE,则意味着要删除整个集合。 如果您使用http://example.com/resources/7HOU57Y DELETE,则意味着您正在删除该元素。 我正在做一个网站,请注意不是网络服务。 我有一个列表,其中的每个项目都有1个复选框。一旦我选择了多个要删除的项目,我将允许用户按下一个名为DELETE SELECTION的按钮。如果用户按下按钮,将弹出一个js对话框,要求用户确认删除。如果用户确认,将删除所有项目。 那么我应该如何以一种RESTFUL的方式删除多个项目呢? 注意,当前对于网页中的DELETE,我要做的是我将FORM标记与POST一起使用,但包括一个_method,其值为DELETE,因为这是其他人在SO中如何进行RESTful删除网页的指示。
97 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.