在我的Ruby on Rails应用程序中,我尝试以Base64格式通过POSTMAN REST客户端上传图像.当我发布图像时,我得到了406 Not Acceptable Response.当我检查我的数据库时,图像就在那里并成功保存.
这个错误的原因是什么,我需要在标题中指定什么?
我的请求:
网址--- http://localhost:3000/exercises.json
标题:
Content-Type - application/json
Run Code Online (Sandbox Code Playgroud)
原始数据:
{
"exercise": {
"subbodypart_ids": [
"1",
"2"
],
"name": "Exercise14"
},
"image_file_name": "Pressurebar Above.jpg",
"image":"******base64 Format*******"
}
Run Code Online (Sandbox Code Playgroud) 假设我的驱动程序资源有休息端点.我有像这样的PUT方法
myapi/drivers/{id}
{body of put method}
Run Code Online (Sandbox Code Playgroud)
我需要添加允许"启用"和"禁用"驱动程序的功能
为此创建新端点是个好主意吗?
PUT myapi/drivers/{id}/enable/false
Run Code Online (Sandbox Code Playgroud)
或者最好使用现有的端点?使用现有端点的一个问题是驱动程序有很多字段(差不多30个),而发送所有这些字段只是为了更新'启用'或'禁用'驱动程序是有点过分.
你怎么看?
我想在我的REST API中添加操作,以便在不同的"商店"之间移动"资源".
例如,假设我的资源通常由以下URL访问:
/resources
/resources/{resourceId}
Run Code Online (Sandbox Code Playgroud)
现在假设我想'停用'某些资源,即从概念上将其移动到另一个子文件夹.允许这种情况的最直接的方法如下.
'停用'资源,即使其在/ resources下不可用.从概念上讲,它将对象'移动'到' / resources/deactivated / '子文件夹:
POST /resources/{resourceId}/deactivate
Run Code Online (Sandbox Code Playgroud)
或者:
POST /resources/deactivated/{resourceId}
Run Code Online (Sandbox Code Playgroud)获取所有已停用的对象:
GET /resources/deactivated
Run Code Online (Sandbox Code Playgroud)反转'deactivate'动作,即概念上将对象从' / resources/deactivated / '子文件夹移回主要文件夹(' / resources ').
或
POST /resources/{resourceId}/reactivate
Run Code Online (Sandbox Code Playgroud)
要么
POST /resources/deactivated/{resourceId}/restore
Run Code Online (Sandbox Code Playgroud)
这个API对我来说似乎很直观.但它似乎违反了我在许多最佳实践中看到的"首选名词"规则 - 关于REST API的文章:我使用动词和形容词而不是名词!
请注意,我可能有所有端点的参数,例如GET/resources/deactivated?createdBefore = 01022017
我的REST API有更好的替代方案吗?即更多RESTful,但不是更直观的?
我能找到关于这个主题的好资源:
我正在使用Symfony2开发REST API。我有一个预订系统,当管理员确认其预订后,我想向客户发送电子邮件。
我有一个预留资源,我们可以使用以下url验证预留:
PATCH本地主机/:id / validate
我想知道使用PATCH方法在验证资源时将电子邮件内容放入请求正文是否正确。
如果没有,正确的方法是什么?
谢谢,Mehdi。