57得票3回答
将LIMIT和OFFSET应用于SQLAlchemy中的所有查询

我正在使用SQLAlchemy(查询MySQL)设计一个API,并希望强制所有查询都具有page_size(LIMIT)和page_number(OFFSET)参数。 是否有一种简洁的方法在SQLAlchemy中实现这一点?也许可以构建某种工厂来创建自定义查询对象?或者,也许可以使用mixi...

57得票6回答
使用多个唯一标识符的Rest API设计

目前,我们正在为系统开发API,并且有些资源可能具有不同类型的标识符。 例如,有一个名为orders的资源,它可能具有唯一的订单号和唯一的ID。目前,我们只有ID的URL,这些是这些URL:GET /api/orders/{id} PUT /api/orders/{id} DELETE /ap...

56得票1回答
API端点语义

API端点是“方法”吗,比如https://api.foursquare.com/v2/venues/,还是包括非查询字符串参数的完整URL,例如https://api.foursquare.com/v2/venues/5104? 换句话说,这两个是不同的端点还是被认为是相同的端点? htt...

54得票8回答
REST API版本控制(仅对表示进行版本控制,而不是资源本身)

我查看了API版本控制的最佳实践?,但对答案还不是很满意。因此,我想通过一个更具体的示例再次询问版本控制部分。我有两个URI(一个包含URI的版本控制,另一个不包含):http://xxxx/v1/user/123 -> favored solution in discussed ...

52得票4回答
我应该更喜欢私有成员函数,还是未命名命名空间中的函数?

我发现自己倾向于不使用私有类函数。如果可能的话,我会将所有候选的私有类函数放入未命名的命名空间中,并将所有必要的信息作为函数参数传递。我没有一个合理的解释为什么我这样做,但至少对我来说,这看起来更自然。作为结果,我需要在头文件中暴露较少的内部细节。 你对此有什么看法 - 这样做是正确的做法吗?

46得票2回答
为什么没有getFirst(iterable)方法?

Iterables提供了两种getLast方法 public static <T> T getLast(Iterable<T> iterable); public static <T> T getLast(Iterable<T> itera...

45得票6回答
我们什么时候需要创建自己的Java异常类?

从设计和实践的角度来看,我们应该在何时创建和使用自定义Java异常类而不是Java中已经预定义的异常类呢? 在一些应用程序中,我看到几乎总是会创建自定义异常类,并尽可能使用原生的Java异常。而另一方面,有些应用程序为(几乎)所有内容定义自定义异常。

43得票6回答
为什么Java不允许在枚举类型中重写equals(Object)方法?

我注意到以下代码片段...@Override public boolean equals(Object otherObject) { ... } 枚举类型不允许重写equals(Object x)方法,因为该方法在Enum中被定义为final。为什么会这样呢? 我无法想象出任何需要重...

43得票4回答
API 设计和 jQuery

我经常听说jQuery在API方面做出了一些糟糕的决策。虽然jQuery不是我最喜欢的库,但它是我使用最频繁的库,我很难指出API设计中具体的错误或者怎样改进。 jQuery的API哪些部分可以做得更好,如何实现不同的API设计,以及为什么这种不同的实现会更好? 这个问题涵盖了API的低级...

42得票2回答
API中的分页应该从零开始吗?

在实现一个带有分页参数的Rest API时,应该从零开始索引还是从1开始。这些参数将是Page和PageSize。 对我来说,从1开始更有意义,因为我们谈论的是页数。