Tag: rest

REST – 支持多种可能的标识符

对于我正在处理的网站,我们正在改进我们针对某种资源types的url,特别是从数字ID转向唯一的描述性string。 一个类似的例子是从数字数据库ID识别用户到通过用户名(而不是我们特定的情况,但是类似的)识别用户。 因此,访问用户信息的URL过去如下所示: /users/48573 现在看起来像 /users/thisisausername. 唯一的问题是,我们仍然需要能够以某种方式通过数字ID获取它们,对于API的传统消费者。 我们不需要自己redirectREST URL(例如/users/48573不应该redirect到/users/thisisausername ),我们只需要一种方法来使用旧的标识符来获取正确的数据。 该解决scheme应该提供一种通过ID访问用户信息(方便地包括新标识符,用户名)或通过ID访问用户名的另一种方式。 一些可能的解决办法可能是 使用节点来指定一些替代的标识方法,例如/users/byid/48573 使用查询参数指定一些替代方法的标识,例如/users/48573?fetchby=id或/users/48573?byid=true 将用户名作为另一个资源处理,例如/identifiers/username/48573 哪些(如果有的话)最接近正确的REST? 你将如何处理这个问题?

REST URLdevise – 一个HTTP调用中的多个资源

可能重复: Rails 3 Custom将多个ID作为参数 根据我的理解,获取资源的良好REST URL将如下所示: /resource/{id} 我遇到的问题是,我经常需要同时获取大量的资源,而不想为每个资源都分别进行HTTP调用 。 是否有一个整洁的URLdevise,将迎合这一点,或者这只是不适合REST API?

使WCF Web服务与GET请求一起工作

背景 过去我已经创build了ASMX Web服务,并能够使用地址约定从Web浏览器和Ajax GET请求访问服务: MyService.asmx/MyMethod?Param=xxx 我刚刚开始使用WCF,并在ASP.NET项目中创build了一个新的Web服务。 它创build一个带有.svc扩展名的文件,如MyService.svc。 现在的情况 我能够使用VS2008附带的WcfTestClient使用服务。 我也可以通过在另一个项目中添加服务引用或使用svcutil.exe命令行来生成代理和configuration文件来创build自己的WCF客户端。 问题 当我尝试从浏览器使用MyService.svc/MyMethod?MyParam=xxx ,我得到一个没有任何错误的空白页面的服务。 我曾经尝试过 我已经添加了一个basicHttpBinding到web.config,并在行为configuration中将其设置为HttpGetEnabled 。 我还在我的操作合同中添加了[WebGet(UriTemplate = "MyMethod?MyParam={MyParam}")]属性。 我已经在这个其他堆栈溢出问题的信息: 用于WCF服务的REST / SOAP EndPoints 不过,在执行这些步骤后,我得到一个空白页面或一个HTTP 404错误。 代码没有什么特别之处。 我只是把一个string作为参数,并返回“你好xxx”。 这是一个基本的“你好WCF世界”概念certificatetypes的东西。 更新 – 这是相关的代码 [ServiceContract] public interface IMyService { [WebGet(UriTemplate = "MyMethod/MyParam={MyParam}")] [OperationContract] string MyMethod(string MyParam); } Web.Config – system.serviceModel部分 <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="MyServiceBehavior"> <serviceMetadata httpGetEnabled="true" […]

Django Rest Framework:创build对象后禁用字段更新

我试图通过Django Rest Framework API调用使我的用户模型RESTful,以便我可以创build用户以及更新他们的configuration文件。 但是,当我与用户进行特定的validation过程时,我不希望用户能够在帐户创build后更新用户名。 我试图使用read_only_fields,但似乎在POST操作中禁用了该字段,所以在创build用户对象时我无法指定用户名。 我怎么去执行这个? 现在API的相关代码如下所示。 class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ('url', 'username', 'password', 'email') write_only_fields = ('password',) def restore_object(self, attrs, instance=None): user = super(UserSerializer, self).restore_object(attrs, instance) user.set_password(attrs['password']) return user class UserViewSet(viewsets.ModelViewSet): """ API endpoint that allows users to be viewed or edited. """ serializer_class = UserSerializer model = […]

REST请求标头是否由SSLencryption?

我正在开发一个客户/服务器应用程序,将通过rest沟通。 一些自定义请求数据将被存储在请求的头部。 发送请求的服务器和接收服务器都有一个SSL证书 – 头文件是encryption的还是只是内容?

为什么PHP将“\ r \ n”添加到空string?

我试图在PHP中实现一个简单的服务。 该服务需要将string返回给某些请求。 但是,当我尝试回显string时,PHP以某种方式将\r\n添加到string的开头。 我正在使用echo来输出响应。 我试图回应一个空格字符: $test = ' '; echo $test; 在回应中我还是得到'\r\n' 。 我试过header('Content-type: text'); 和$string = preg_replace("\r\n", "", $string); ,但我仍然在回应中获得新的线。 我是PHP的新手,所以如果这是一种概念,有人可以给我提供信息的指针,我可以在那里读到它吗?

如何做一个HTTP PUT请求?

在C#中编写一个PUT请求的最好方法是什么? 该请求还必须发送URI中不存在的对象。

RESTful的post,你是否将对象的单数或复数Uri?

哪一个URI会更适合接收POST(添加产品)? 有没有最好的做法,或只是个人喜好? / product / (单数) 要么 / products / (复数) 目前,我们使用/products/?query=blahsearch和/product/{productId}/获取单个产品的GETs PUT和DELETE。

HTTP方法GET,POST,PUT和DELETE有什么区别

我正在开发REST WCF服务和理论上我知道什么时候select什么目的。 GET获取资源 请更新 POST到插入 DELETE删除 但是,如果我们不遵循上述规则,假设插入一条logging,我使用了GET方法,那又有什么缺点呢?

在PHP中获取请求的“Content-Type”头

我正在PHP中实现一个REST服务。 这个服务应该能够支持多种input和输出格式(JSON,XML)。 出于这个原因,我想检查客户端发送和请求的内容types的请求头“Accept”和“Content-Type” 。 使用$_SERVER['HTTP_ACCEPT']来访问“Accept”头文件非常简单。 但是访问“Content-Type”标题似乎是一项艰巨的任务。 我search了PHP文档和网页,但是唯一提供的解决scheme是使用PHP函数apache_request_headers() ,它仅在将PHP作为Apache模块安装时才受支持,在我的情况中不是这样。 所以现在我的问题是:如何访问请求的标题“Content-Type”?