547得票29回答
对于一个有效请求但是没有数据的情况,适当的REST响应代码是什么?

例如,您发送了一个GET请求,请求的是users/9,但是没有ID为9的用户。 最合适的响应代码是哪个? 200 OK 202 Accepted 204 No Content 400 Bad Request 404 Not Found

482得票8回答
在RESTful API中,何时使用路径参数和查询参数?

我希望让我的RESTful API变得非常可预测。在决定使用URI而不是查询参数进行数据分段时,有哪些最佳实践呢? 对于支持分页、排序和分组的系统参数,将它们放在'?'之后是有意义的。但是对于像'status'和'region'这样分割集合的其他属性,如果这些也是查询参数,那么什么时候使用路...

461得票17回答
在API设计中,何时应该使用指针而不是引用?

我理解指针和引用的语法和一般语义,但是在API中何时更合适使用引用或指针,我应该如何决定呢? 当然,有些情况需要使用其中之一(例如,`operator++`需要一个引用参数),但总体而言,我发现我更喜欢使用指针(和常量指针),因为语法清楚地表明变量是以破坏性方式传递的。 例如,在以下代码中...

415得票8回答
REST嵌套资源的最佳实践是什么?

据我所知,每个资源应只有一个规范路径。那么在下面的例子中,良好的URL模式是什么呢? 以公司的rest表示为例。在这个假设的例子中,每个公司拥有0个或多个部门,每个部门拥有0个或多个员工。 没有相关联的公司,部门不可能存在。 没有相关联的部门,员工不可能存在。 现在,我会找到资源模式的...

354得票13回答
API分页最佳实践

我需要一些帮助来处理我正在构建的分页API中的一个奇怪的边缘情况。 像许多API一样,这个API对大型结果进行分页。 如果您查询/foos,则会获得100个结果(即foo#1-100)和链接/foos?page = 2,它应返回foo#101-200。 不幸的是,如果在API使用者进行下一...

248得票6回答
为什么Java Streams只能使用一次?

与C#的IEnumerable不同,在Java中,流(stream)只能被“迭代”一次,并且任何对终端操作的调用都会关闭该流,使其无法再次使用。这种“特性”削弱了其很多功能。 我想,这种限制背后的原因并不是技术性的。这种奇怪的限制背后有哪些设计考虑? 编辑:为了证明我所说的,请考虑在C#中...

185得票6回答
使用REST删除多个记录

什么是以REST风格删除多个条目的方法? 我的用例是,我有一个Backbone Collection,在其中需要能够一次性删除多个项目。选项似乎是: 1.为每个记录发送DELETE请求(如果可能有几十个项目,这似乎是一个坏主意); 2.在URL中连接要删除的ID(即,“/records/1...

166得票8回答
以RESTful方式调用资源上的服务器端方法

请记住,我对REST的理解很基础。假设我有以下URL:http://api.animals.com/v1/dogs/1/ 现在,我想让服务器让狗叫。只有服务器知道如何做到这一点。假设我想要它在 CRON 任务上运行,让狗每隔 10 分钟叫一次,直到永远。那么这个调用应该是什么样子的?我有点想这...

141得票4回答
为什么String.valueOf(null)会抛出NullPointerException异常?

根据文档,方法 String.valueOf(Object obj) 返回: 如果参数是 null,则返回一个等于 "null" 的字符串;否则,返回 obj.toString() 的值。 但是当我尝试这样做时,为什么会出现问题: System.out.println("String...

117得票28回答
英国英语还是美国英语?

如果您拥有一个API,并且您是一名总受众面高度国际化的英国开发人员,那么您的API应该被setColour() 或。setColor() (以一个简单的单词为例。) 总体上,英国工程师对他们的“正确”拼写方式往往持守防御态度,但可以说美式拼写在国际市场上更具有“标准性”。问题在于这是否重要?...