我有一个JSON请求,我发布到HTTP URL.
如果这被视为400其中requestedResource场存在,但"Roman"对于这方面的无效值?
[{requestedResource:"Roman"}]
Run Code Online (Sandbox Code Playgroud)
如果这被视为400其中"blah"场完全不存在吗?
[{blah:"Roman"}]
Run Code Online (Sandbox Code Playgroud) 我想知道HTTP 200 OK在服务器端发生错误并且响应正文内部出现一些错误时返回是否正确.
例:
http GEThttp 200 OK在响应中返回错误状态代码(例如,{"status":"some error occured"}是不是正确的行为?我们不应该改变状态代码吗?
我正在构建一个应用程序,它被构建为一个Rails服务器应用程序,为客户端提供RESTful api.Rails服务器使用RABL.客户端是一个Angular JS客户端,执行标准的$ http调用(获取,放置等).
偶尔我的Rails服务器会产生一个错误(假设附加到对象的验证错误)甚至没有错误,在这种情况下我想向用户显示一些东西 - 错误例如,"记录没有保存,因为...... "或"记录已成功更新".
我试图在Rails端和Angular /客户端都映射出一个模式来处理这个问题.
至于Rails:
至于Angular:
我想我希望我不必在这里重新发明轮子,有人可以指出我目前使用和建议(和本地化)的模式.
我一直在查看REST API的示例,如Netflix http://developer.netflix.com/docs/REST_API_Reference#0_59705和Twitter,他们似乎在statusText标头响应中放置错误消息而不是responseText.我们正在开发一个内部RESTful api,我正在争论发送自定义statusText消息并忽略responseText.
对于我们的应用程序的范围,当用户尝试做他们不应该做的事情时,我们返回错误400,并且将在用户界面中为用户更新的唯一错误消息将以400传递.我是相信消息应该作为一个修改过的statusText发送,但是其中一位工程师(他比我对REST知之甚少)正在争论在responseText中发送它.
什么是最好的方式?
API错误代码响应模式的好选择是什么?
而不是使用不同的代码表明不同类型的错误
100001 // username not provided
100002 // password not provided
100003 // password too short
...
Run Code Online (Sandbox Code Playgroud)
我看到一些其他使用模式,如下(非顺序)...
20000
20001
20004
20015
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?
我正在使用RestWebservice进行一些基本操作,比如创建/搜索.请求xml看起来像这样
<customer>
<name/>
.....
</customer>
Run Code Online (Sandbox Code Playgroud)
为了成功操作,我返回相同的客户XML,其中填充了额外的字段(例如,我们在请求中空白的systemId等).与Response.Status = 2000
对于不成功的操作,我返回具有不同错误代码的类似内容.例如Response.Status = 422(不可处理的实体)Response.Status = 500(内部服务器错误)和其他几个..
<errors>
<error> An exception occurred while creating the customer</error>
<error> blah argument is not valid.</error>
</errors>
Run Code Online (Sandbox Code Playgroud)
现在我不确定,这是否是将错误发送给客户端的正确方法.也许它应该存在于响应的标题中.
我真的很感激任何帮助.谢谢!
我正在尝试开发一个简单的REST API.我仍然试图理解它的基本架构范例.我需要以下方面的帮助:
"资源"应该是名词,对吧?所以,我应该有"用户",而不是"getUser",对吗?
我在一些API中看到了这种方法:www.domain.com/users/(返回列表),www.domain.com/users/user(为用户做特定的事情).这种做法好吗?
在我看过的大多数例子中,输入和输出值通常只是名称/值对(例如color ='red').如果我想发送或返回比这更复杂的内容怎么办?我是否只被迫处理XML?
假设PUT到/ user /方法将新用户添加到系统.什么是输入参数的良好格式(假设所需的唯一字段是'用户名'和'密码')?如果用户成功,会有什么好的回应?如果用户失败了(我想返回描述性错误消息)该怎么办?
什么是一种简单的认证和授权方法?我想将大多数方法限制为已成功"登录"的用户.每次通话都会传递用户名/密码吗?传递一个被认为更安全的令牌(如果是,如何在到期方面实施等)?