【发布时间】:2019-12-12 17:32:09
【问题描述】:
我正在编写这样的 API 端点,但这里有一个模糊的东西。 这些端点正在使用具有 CompanyId 和 KeywordId 的 CompanyKeyword 表。所以这个表是与Company和Keyword表相关的。
我将分别获取所有公司关键字和具有以下端点的特定公司关键字。
当我在互联网上查看REST API: Design Guidelines 时。指南说
如果关系只能存在于另一个资源中,则使用 then 根据它。
这引导我到达以下端点:
[HttpGet("api/company/{companyId}/keyword/{keywordId}")]
[HttpGet("api/company/{companyId}/keyword")]
但我没有在后端代码中使用 companyId 和 keywordId。我只需要 companyKeywordId。
因为我正在使用如下端点。
(1)
[HttpGet]
public async Task<IActionResult> GetAllAsync()
{
// Some Code
}
[HttpGet("{id}")]
public async Task<IActionResult> GetByIdAsync(Guid id)
{
// Some Code
}
当我查看互联网时,如果代码中使用了 companyId 和 keywordId,那么它们是从端点请求的。如果它们不是必需的,则不会从 api 端点请求它们。
(2)
[HttpGet("api/company/{companyId}/keyword")]
[HttpGet("api/company/{companyId}/keyword/{keywordId}")]
我很困惑。哪个是正确的,1 还是 2?
你能帮我解决这个问题吗?
【问题讨论】:
标签: c# rest api .net-core asp.net-core-webapi