具有不同内容类型的RESTAPI

具有不同内容类型的RESTAPI,api,rest,web-applications,content-type,Api,Rest,Web Applications,Content Type,我有一个RESTAPI端点来修改资源,即PUT。资源可以有一个与之关联的文件,因此我支持两种不同的内容类型:application/json和multipart/formdata。第一个用于在不关联文件的情况下修改资源,第二个用于在需要将文件与资源关联时修改资源 最好的表达方式是什么?我是否应该对两种不同的内容类型使用相同的URI,例如update/:resourceId?我是否应该有两个不同的端点,例如update/:resourceId和updateWithResource/:resourc

我有一个RESTAPI端点来修改资源,即PUT。资源可以有一个与之关联的文件,因此我支持两种不同的内容类型:application/json和multipart/formdata。第一个用于在不关联文件的情况下修改资源,第二个用于在需要将文件与资源关联时修改资源


最好的表达方式是什么?我是否应该对两种不同的内容类型使用相同的URI,例如update/:resourceId?我是否应该有两个不同的端点,例如update/:resourceId和updateWithResource/:resourceId?或者这完全是错误的做法,我应该做些别的事情吗?

内容类型只是同一个资源的不同表示形式。因此,只要它们代表相同的东西,它们就可以而且应该共享相同的URI


URI不应该影响内容类型,这不是RESTish。仅与内容类型标题协商表示。

我不理解第一段。“是否可以关联文件”?