api-design相关内容

为什么 int num = Integer.getInteger("123") 抛出 NullPointerException?

以下代码抛出NullPointerException: int num = Integer.getInteger("123"); 我的编译器是否在 null 上调用 getInteger 因为它是静态的?这没有任何意义! 发生了什么? 解决方案 大局 这里有两个问题: Integer getInteger(String) 没有按照你的想法去做 在这种情况下返回 nu ..
发布时间:2021-11-15 20:57:23 Java开发

我们什么时候应该创建自己的 Java 异常类?

从好的设计/实践的角度来看,我们什么时候应该创建和使用自定义 Java 异常类而不是 Java 中已经预定义的类? 在一些应用程序中,我看到几乎创建了自定义异常类,它们努力始终使用本机 Java 异常.另一方面,有些应用程序为(几乎)所有内容定义了自定义异常. 解决方案 来自 异常处理的最佳实践: 如果没有关于客户端代码的有用信息,尽量不要创建新的自定义异常. 下面的代码 ..
发布时间:2021-11-15 20:57:19 Java开发

什么时候在 RESTful API 中使用路径参数和查询参数?

我想让我的 RESTful API 非常可预测.决定何时使用 URI 而不是使用查询参数对数据进行分段的最佳做法是什么. 支持分页、排序和分组的系统参数在“?"之后对我来说很有意义.但是,诸如“状态"和“地区"之类的字段或对您的集合进行细分的其他属性呢?如果这些也是查询参数,那么知道何时使用路径参数的经验法则是什么? 解决方案 RESTful API 设计的最佳实践是使用路径参数来标 ..

为什么 Java Streams 是一次性的?

与 C# 的 IEnumerable 不同,在 C# 中,执行管道可以根据需要执行多次,而在 Java 中,流只能“迭代"一次. 对终端操作的任何调用都会关闭流,使其无法使用.这个“功能"带走了很多力量. 我想这是不是技术性的原因.这个奇怪的限制背后的设计考虑是什么? 编辑:为了演示我在说什么,请考虑以下 C# 中快速排序的实现: IEnumerable快速排序(IEnumer ..
发布时间:2021-11-15 20:57:10 Java开发

REST 嵌套资源的最佳实践是什么?

据我所知,每个单独的资源应该只有一个规范路径.那么在下面的例子中,好的 URL 模式应该是什么? 以公司的休息表示为例.在这个假设示例中,每个公司拥有 0 个或更多部门,每个部门拥有 0 个或更多员工. 没有关联公司,部门就无法存在. 没有关联部门的员工不可能存在. 现在我会找到资源模式的自然表示. /companies 公司集合 - 接受新公司的认股权.获取整个集合 ..
发布时间:2021-11-15 20:57:07 其他开发

异步 API 应该同步抛出吗?

我正在编写一个 JavaScript 函数,它发出 HTTP 请求并返回结果的承诺(但这个问题同样适用于基于回调的实现). 如果我立即知道为函数提供的参数无效,函数应该 throw 同步,还是应该返回一个被拒绝的承诺(或者,如果你愿意,用 错误实例)? 异步函数应该总是以异步方式运行有多重要,特别是对于错误情况?如果您知道程序处于不适合进行异步操作的状态,是否可以throw? 例 ..
发布时间:2021-11-15 20:57:03 前端开发

REST 嵌套资源的最佳实践是什么?

据我所知,每个单独的资源应该只有一个规范路径.那么在下面的例子中,好的 URL 模式应该是什么? 以公司的休息表示为例.在这个假设示例中,每个公司拥有 0 个或更多部门,每个部门拥有 0 个或更多员工. 没有关联公司,部门就无法存在. 没有关联部门的员工不可能存在. 现在我会找到资源模式的自然表示. /companies 公司集合 - 接受新公司的认股权.获取整个集合 ..
发布时间:2021-11-15 20:57:00 其他开发

为什么 Java 日期 API (java.util.Date, .Calendar) 如此混乱?

正如大多数人现在痛苦地意识到的那样,用于处理日历日期的 Java API(特别是 java.util.Date 和 java.util.Calendar 类)真是一团糟. 我的头顶: 日期是可变的 Date 代表时间戳,而不是日期 没有简单的方法可以在日期组件(日、月、年...)和日期之间进行转换 Calendar 使用起来很笨拙,并试图将不同的日历系统合并为一个类 这篇文 ..
发布时间:2021-11-15 20:56:59 Java开发

如何从仅使用 facebook 登录的应用程序安全地提交分数?

我们的安卓应用只有facebook登录. 这是服务器中发生的事情: 使用 facebook 的用户访问令牌在正文中发送 POST 请求时创建用户. 每当通过 POST 请求创建用户时,都会生成一个 api 令牌并将其作为响应发送,如下所示: {"message":"用户成功创建","api_token":"ACITyBKf0jKrfqOFumTMcaEEJ8jU151crRdE ..
发布时间:2021-11-15 04:23:16 PHP

如何设计一个 RESTful API 来查询有关动词的信息(例如潜在的 POST 请求)?

我正在学习如何设计 RESTful API,但我遇到了一个难题. 假设我有一个 POST 端点来执行操作.该操作具有与之相关的特定成本.成本取决于操作是什么,特别是在 POST 的正文中.例如,给定这两个请求: POST/flooblinate{"intensity": 50, "colorful": true, "blargs": [{"norg": 43}]}POST/flooblin ..
发布时间:2021-11-15 04:17:58 其他开发

如何设计一个 RESTful API 来查询有关动词的信息(例如潜在的 POST 请求)?

我正在学习如何设计 RESTful API,但我遇到了一个难题. 假设我有一个 POST 端点来执行操作.该操作具有与之相关的特定成本.成本取决于操作是什么,特别是在 POST 的正文中.例如,给定这两个请求: POST/flooblinate{"intensity": 50, "colorful": true, "blargs": [{"norg": 43}]}POST/flooblin ..
发布时间:2021-11-15 04:15:48 其他开发

在 REST Api 调用中批量更新集合的最佳实践

您好,我正在寻找有关 API 设计的最佳实践,以便通过 API 调用批量更新集合. 我的收藏有 URL/api/v1/cars,我想更新收藏中的所有汽车以添加当前时间的时间戳. {数据: [{制造商:'保时捷',时间戳:...},{制造商:'宝马',时间戳:...}{制造商:'标致',时间戳:...}} 我想了几个选项,但我不知道什么是最佳做法. 应该是: 1/建模为另一个资 ..
发布时间:2021-11-15 03:59:23 其他开发

在 REST Api 调用中批量更新集合的最佳实践

您好,我正在寻找有关 API 设计的最佳实践,以便通过 API 调用批量更新集合. 我的收藏有 URL/api/v1/cars,我想更新收藏中的所有汽车以添加当前时间的时间戳. {数据: [{制造商:'保时捷',时间戳:...},{制造商:'宝马',时间戳:...}{制造商:'标致',时间戳:...}} 我想了几个选项,但我不知道什么是最佳做法. 应该是: 1/建模为另一个资 ..
发布时间:2021-11-15 03:57:10 其他开发

BigCommerce 更明确的回应

当程序尝试发布已存在的货件时,BigCommerce 能否更改其 API 响应以使其更加清晰? 向 BigCommerce 发布货件时,如果货件已存在,您会收到以下错误消息. 400字段“数量"无效.指定的数量大于可发货的产品数量. ..
发布时间:2021-11-15 03:54:40 其他开发

单一 API 端点的优缺点

我正在创建 API 并试图找出计划好的方法. 该 API 不是公开的,它将被我构建的 SPA 和移动应用程序使用. 所以我正在考虑类似 GraphQL 的设计,但不发布 json 并使用常规 HTTP 方法.GET 方法是这样的: 示例 1 - 获取具有特定字段的用户(_join 表示加入 sql 表)、排序和限制: api.com?table=users&displayFields= ..
发布时间:2021-11-15 03:39:25 其他开发

单一 API 端点的优缺点

我正在创建 API 并试图找出计划好的方法. 该 API 不是公开的,它将被我构建的 SPA 和移动应用程序使用. 所以我正在考虑类似 GraphQL 的设计,但不发布 json 并使用常规 HTTP 方法.GET 方法是这样的: 示例 1 - 获取具有特定字段的用户(_join 表示加入 sql 表)、排序和限制: api.com?table=users&displayFields= ..
发布时间:2021-11-15 03:35:34 其他开发

覆盖 ToString() 以进行调试和记录 - 字符串应该本地化吗?

我正在设计一个 .NET 库,其他开发人员将使用该库来制作 Web 和桌面应用程序.我在各种类中覆盖 ToString() 以提供用于调试目的和包含在应用程序日志文件中的信息. 我的一些课程包含数字和日期. 考虑一个对象,它包含一个名为 date 的 DateTime 和一个名为 value 的 double(可能还有其他字段)以及)...如果我覆盖该对象的 ToString(),我可 ..
发布时间:2021-11-15 02:41:28 C#/.NET

在 C 的公共 API 函数中使用枚举参数是个好主意吗?

我正在设计一个 C API,它必须提供一种方法来设置一些双值选项.为了识别选项,我使用以下枚举: typedef 枚举{选项A,选项B,...} 选项; 在公共 API 函数中使用 Option 作为参数类型是否一个好主意: int set_option(Option opt, double value); 或者用 int 代替更好: int set_option(int opt, do ..
发布时间:2021-11-15 02:40:57 其他开发

如何管理 REST API 中 3 个资源之间的关系

我正在创建一个基于 REST 概念的 API,但在谈论相关资源时我仍然有些困惑. 我有一个网站,人们可以在其中注册多个群组并选择多个角色.例如,让我们以在公司注册的人作为场景: 公司 脸书 谷歌 苹果 角色 营销 销售 开发 客户支持 因此,当我想在具有某些角色的新公司中创建用户时,我会将类似的内容传递到/users 端点的 POST 请求中 {"用 ..
发布时间:2021-11-15 02:26:45 其他开发