1)如何使用关系?关于REST的几个问题
比方说,我有一篇文章资源,由作者编写。
基本上我会是这样的:
{
"article": {
"id": 1,
"title": "Foo bar",
"body": "Lorem ipsum dolor sid amet",
"published_on": "2011-05-06 21:54:23",
"author": {
"id": 25,
"username": "johndoe"
}
}
}
我会在api/articles/1
我的问题是访问我的资源,什么是代表这个数据的最佳方式?
我应该做的事情,如:
{
"article": {
"id": 1,
"title": "Foo bar",
"body": "Lorem ipsum dolor sid amet",
"published_on": "2011-05-06 21:54:23",
}
}
并获得笔者致电api/articles/1/author
只包含作者的ID(子对象标识符)
{
"article": {
"id": 1,
"title": "Foo bar",
"body": "Lorem ipsum dolor sid amet",
"published_on": "2011-05-06 21:54:23",
"author": {
"id": 25,
}
}
}
或包含如上看到的全关系?
2)PUT或POST创建新对象?
看到SO和其他地方,我注意到,两者都用于创建和/或更新对象。
据我了解,两者都是有效的行动,但它取决于上下文。如果我创建一个与之前创建的对象相关的子对象,我必须使用POST
。
例如:我创建了一篇文章投票,因为文章已经存在,我会POST
一个新的投票,但是,如果我创建一个新的文章,我PUT
它。
我对不对?
3)我们应该如何格式化日期?
我见过使用Unix时间戳,其中ISO8601主要用于别处。
有没有关于此标准的任何“标准”或建议?