我不清楚你何时应该而且不应该返回HTTP 412:Precondition Failed,Web服务错误?我正在考虑在验证数据时使用它.例如,如果客户端POST的XML数据和该数据缺少必需的数据元素,则使用412和错误描述进行响应.
这与使用HTTP 412响应的精神一致,还是应该使用其他东西(例如,另一个http错误代码或Web应用程序异常)?
rest web-services http http-status-codes http-status-code-412
所以我正在开发一个Rest API
当POST创建资源并且缺少必填字段时我应该返回什么?
400 - 错误请求
要么
412 - 前提条件失败
为什么?
我正在实现一个访问数据库的RESTful Web服务.对数据库中的实体进行版本控制以检测多个更新.例如,如果当前值是{"name":"Bill", "comment":"tinker", "version":3}
,如果一个用户PUT {"name":"Bill", "comment":"tailor", "version":3}
,请求将成功(200 OK)并且新值将是{"name":"Bill", "comment":"tailor", "version":4}
.如果第二个用户PUT {"name":"Bill", "comment":"sailor", "version":3"}
该请求将失败(409 Conflict),因为版本号不匹配.
存在非RESTful接口,因此无法更改数据库的设计.RESTful接口调用现有接口来处理检查版本的详细信息.
RESTful Web服务中的经验法则是尽可能遵循HTTP的详细信息.在这种情况下,在请求中使用条件头并且如果版本不匹配则返回412 Precondition Failed会更好吗?相应的标题似乎是If-Match.该头部采用ETag(实体标签),其可以是资源的当前状态的表示的散列.
如果我这样做,ETags将出于外表的缘故,因为版本仍然是我正在测试的真实的东西.
有什么理由我应该这样做,除了"让它更加RESTful",无论这意味着什么?
我在FlexSlider中使用HTML5视频标签.有时视频停止工作.经过大量搜索后,我收到了这个错误.
GET http://studiobooth.local/app/videos/0062mParticle12151601.mp4 412 (Precondition Failed)
Run Code Online (Sandbox Code Playgroud)
这是我的HTML5视频代码:
<video preload="none" src="http://studiobooth.local/app/videos/2.mp4" poster="http://studiobooth.local/app/videos/thumbs/2.jpg" controls="" loop="" style="max-width:100%;height:100%;"><source src="http://studiobooth.local/app/videos/2.mp4" type="video/mp4">Your browser does not support the video tag.</video>
Run Code Online (Sandbox Code Playgroud)
请帮我解决一下.
谢谢
我正在构建RESTful数据存储并利用条件GET和PUT.在条件PUT期间,客户端可以在资源上包含来自先前GET的Etag,并且如果当前表示与服务器不匹配,则将返回HTTP状态代码412(前提条件失败).请注意,这是一个基于Atom的服务器/协议.
我的问题是,当我返回412状态时,我是否还可以包含资源的新表示形式,还是用户必须发出新的GET?HTTP规范似乎没有说是或否,Atom规范也没有(尽管它们的示例在响应中显示了一个空的实体主体).如果不返回新的表示并使客户端专门获取它,这似乎是非常浪费的.思考?
我们已经使用 firebase 存储来存储应用程序中的图像和文件。最近,我们的文件似乎没有在应用程序中加载,经过交叉检查后,我发现了以下错误。
{
"error": {
"code": 412,
"message": "A required service account is missing necessary permissions. Please resolve by visiting the Storage page of the Firebase Console and re-linking your Firebase bucket or see this FAQ for more info: https://firebase.google.com/support/faq#storage-accounts"
}
}
Run Code Online (Sandbox Code Playgroud)
经过进一步调查,我在下面的相关FAQ中找到了解决方案。 https://firebase.google.com/support/faq/index#storage-accounts
根据文档,我创建了一个新的服务帐户,其“我是管理员”角色作为 Firebase 服务代理的 Cloud Storage。它创建了一个名为 service account name 的服务帐户service-PROJECT_NUMBER@PROJECT_id.iam.gserviceaccount.com
。此外,我还启用了 IAM 管理策略来管理服务。但存储 URL 仍然未加载。
我是否需要对存储权限进行更多更改?如何将现有存储桶数据与新更新一起使用?
storage google-cloud-storage firebase http-status-code-412 firebase-storage
我在AEM 6.0中连接到JCR存储库时遇到了一些问题.当我到达创建一个session
关于repostory 的点时,我得到了一个javax.jcr.lock.LockException: Precondition Failed
.
我一直在使用本教程开始.
这是我非常简单的代码示例:
import java.io.FileNotFoundException;
import java.io.FileReader;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import org.apache.jackrabbit.commons.JcrUtils;
import com.opencsv.CSVReader;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
Repository repository;
FileReader fileReader;
CSVReader csvReader;
try {
System.out.println("connecting to repository");
repository = JcrUtils.getRepository("http://localhost:4502/crx/server");
Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray())); // throws javax.jcr.lock.LockException: Precondition Failed
}
catch(Exception e) {
System.out.println(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何指导将不胜感激.
我有一个返回Voucher
对象的 api 端点。
凭证是从第三方检索的。
有一些条件,例如过期日期,我们检查/验证。
因此,如果客户端应用程序请求/voucher/1234
从第三方检索 ID 为 1234 的凭证。
如果过期日期 < 现在,我们需要返回一个错误。
我想返回标准的 HTTP 错误。
哪个会最合适?
我最初认为 412 会是,但现在我不确定。
rest http http-status-codes asp.net-web-api http-status-code-412