假设我有 2 个 REST 端点,其中第二个在内部调用第一个端点。 POST 端点的行为类似于普通的 GET 端点,但由于
dependentCategories
的集合非常大,我无法使用 is 作为查询参数,因此我选择使用 GET 含义中的 POST。另一个问题是,如果 dependentCategories
为空集或为空,我必须做出不同的反应。
这整个概念是反模式吗?对于这样的例子是否存在更好的解决方案?也许我应该调用 Service 中的其他方法,以便 GET 端点不依赖于 POST 端点?
@RestController
public class CategoriesController {
@PostMapping("/categories/{productNo}")
ResponseEntity<?> getCategories(@PathVariable final String productNo,
@RequestBody final Set<String> dependentCategories) {
//some logic
};
@GetMapping("/categories/{productNo}")
ResponseEntity<?> getCategories(@PathVariable final String productNo) {
return this.getCategories(productNo, null); // or empty Set instead of null
};
}
最好将它们分开,两个端点之间的任何逻辑差异都可以在服务层中实现。或者您可以创建一个端点 (POST) 并检查 dependentCategories 是否为 null 来决定将使用逻辑。