实用网址与推荐网址

时间:2018-01-16 17:18:23

标签: rest symfony symfony-forms

我有Book资源和作者资源。他们之间有联系,因为 - 显然 - 作者写了一本书,所以GET Book URL就像:

GET: /authors/{author_name}/books/{book-title}

这很好。

然而,当涉及到创建(POST)相关资源(在本例中是一本书)时,我感到困惑,并且在Symfony区域中无法找到关于该主题的任何内容。有两种可能性:

REST推荐的一个:

POST: /authors/{author_name}/books/{book_title}

Symfony实用主义 - 只是:

POST: /books

后者又在表格中发送作者和标题 - 前者不需要。

在Symfony中如何完成的常用方法是使用表单,我正在使用它。当我采取务实的态度时,一切都很好。所有数据,包括作者和书籍的标题都不是网址的一部分 - 所有内容都在发送的形式中。

问题在于我想采用REST推荐的方法。然后分割数据:一些是形式,另一些是URL的一部分。

我们假设我想选择" elaborative"包含一些关键数据的URL。我如何"合并"表单数据在表单验证之前?

(另请注意,我不能要求"标题"以及"作者"字段 形式,尽管它们实际上是将Book保存到数据库时需要。)

1 个答案:

答案 0 :(得分:-1)

  

REST推荐的一个:

     

POST: /authors/{author_name}/books/{book_title}

首先,我完全不同意这是" REST推荐"办法。假设book_title是您的资源标识符,建议的方法是:

POST: /authors/{author_name}/books

请求的有效负载的book_title部分。

其次,我认为使用author_namebook_title作为标识符是一个很大的错误。如果他们改变怎么办?那些同名的书籍和作者怎么样?如果一本书作为多位作者怎么办?

所以要回答你的问题,你就不会有问题因为" REST推荐"方法"实用的"方法

示例:

GET /books/{id}
POST /books

GET /authors/{id}
POST /authors