只读的派生 REST 资源?
A read-only derived REST resource?
我正在创建一项新服务,我需要在其中支持对两个实体进行标记。
我能否将 /tags
创建为仅支持以下调用的顶级 REST 资源:
GET /tags
GET /tags/{tagName}
要应用标签,我们使用以下调用:
PATCH /entity1/{entity_1_Name}
PATCH /entity2/{entity_2_Name}
因此,无论何时将标签应用于实体,随后对 GET /tags
的调用都会显示该标签。我打算这样做,因为这不需要我将标签独立存储在我的数据存储中。
这是个好主意吗?
Can I create /tags as a top level REST resource
是的,你可以。如果 tag
是一个独立的实体并且 api 响应将仅包含 tag_name
和其他与标签相关的信息,这听起来很有意义。您的 api 是否有数据库或 web.config 在幕后或它处理硬编码的值列表都没有关系。您的 API 界面 隐藏了 这个事实,用户永远不会知道实现的细节。有一个只读实体是可以的。
whenever a tag is applied to an entity, subsequent calls to GET /tags will show that tag
我希望您的 GET /entity2/{entity_2_Name}
资源模型会有一个 tags
字段:
class Entity2
{
string entity_name;
...
string[] tags
}
作为备选方案,您可以通过两个调用获取所有数据:
GET /entity2/{entity_2_Name}
//响应中没有标签数组
GET /entity2/{entity_2_Name}/tags
资源/entity2/{entity_2_Name}/tags
应该return标签分配给这个具体entity2
实例
我正在创建一项新服务,我需要在其中支持对两个实体进行标记。
我能否将 /tags
创建为仅支持以下调用的顶级 REST 资源:
GET /tags
GET /tags/{tagName}
要应用标签,我们使用以下调用:
PATCH /entity1/{entity_1_Name}
PATCH /entity2/{entity_2_Name}
因此,无论何时将标签应用于实体,随后对 GET /tags
的调用都会显示该标签。我打算这样做,因为这不需要我将标签独立存储在我的数据存储中。
这是个好主意吗?
Can I create /tags as a top level REST resource
是的,你可以。如果 tag
是一个独立的实体并且 api 响应将仅包含 tag_name
和其他与标签相关的信息,这听起来很有意义。您的 api 是否有数据库或 web.config 在幕后或它处理硬编码的值列表都没有关系。您的 API 界面 隐藏了 这个事实,用户永远不会知道实现的细节。有一个只读实体是可以的。
whenever a tag is applied to an entity, subsequent calls to GET /tags will show that tag
我希望您的 GET /entity2/{entity_2_Name}
资源模型会有一个 tags
字段:
class Entity2
{
string entity_name;
...
string[] tags
}
作为备选方案,您可以通过两个调用获取所有数据:
GET /entity2/{entity_2_Name}
//响应中没有标签数组
GET /entity2/{entity_2_Name}/tags
资源/entity2/{entity_2_Name}/tags
应该return标签分配给这个具体entity2
实例