我正在创建一个用于创建帖子的API端点:
POST > /posts
每个帖子最多可以具有一个类别和多个标签。
创建帖子时,我需要引用其类别和标签(如果有):
所以我的Json会是这样的:
{
"title": "Some title",
"content": "Some content",
"categoryId": 1,
"tagsNames": ["adventure", "drama"]
}
或者我应该允许按名称引用类别,按ID引用标签:
{
"title": "Some title",
"content": "Some content",
"categoryName": "books",
"tagsIds": [1, 2]
}
要使用不同的端点,可以使用以下命令:
{
"title": "Some title",
"content": "Some content",
"category": {
"id": 1,
"name": null
},
"tags": [
{
"id": null,
"name": "adventure"
},
{
"id": null,
"name": "drama"
}
]
}
然后后端确定如何通过ID或名称来引用类别和标签。
这有标准吗?
答案 0 :(得分:0)
这有标准吗?
嗯,这没有标准。选择对您的API更有意义的方法,并确保已记录其属性。
但是一旦您表示了一种关系,就可以使用ID。如果名称是唯一的(并且不会更改),则可以用来标识您的资源。
答案 1 :(得分:0)
如何引用类别和标签取决于选项,类别和标签之间的模型关系。例如
如果模型关系如下:
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public Category Category { get; set; }
public List<Tag> Tags { get; set; }
}
json可以使用以下内容,请注意:您应该像这样public int? TagId { get; set;}
{
"title": "Some title",
"content": "Some content",
"category": {
"id": 1,
"name": null
},
"tags": [
{
"id": null,
"name": "adventure"
},
{
"id": null,
"name": "drama"
}
]
}
如果模型关系如下:
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int CategoryId { get; set; }
public List<string> TagsNames { get; set; }
}
您可能会编写如下的json:
{
"title": "Some title",
"content": "Some content",
"categoryId": 1,
"tagsNames": ["adventure", "drama"]
}