0

我有一个客户端(Blazor 服务器)应用程序,它使用 Web API 从 SQL 数据库获取数据。我的数据库包含一个“客户”表。我的 Web API 包含 CRUD(创建、读取、更新、删除)端点,如下所示:

(创建客户) HTTP POST → "/api/customers"
(读取客户) HTTP GET → "/api/customers/{id}"
(更新客户) HTTP PUT → "/api/customers"
(删除客户) HTTP DELETE → “/api/customers/{id}”

但我想知道添加这样的端点(除 CRUD 之外)是否也是一种好习惯?

(检查客户名称是否存在) HTTP GET → "/api/customers/name-exist/{name}"
(获取客户数量) HTTP GET → "/api/customers/count/"

4

1 回答 1

2

简短的回答是,满足应用程序的业务需求是一种很好的做法。如果您需要公开该信息,那么这就是您需要做的。

但是你给出的这两个例子不在 CRUD 模型之外。它们都是阅读(或获取)信息。这是完全正常的。没有不可接受的理由。

HTTP GET的文档说:

GET 方法意味着检索由 Request-URI 标识的任何信息(以实体的形式)。

这正是你在你给出的这两个例子中所做的。

于 2022-01-11T18:25:16.693 回答