我正在创建一个REST api,密切关注apigee建议,使用名词不是动词,api版本加入url,每个集合有两个api路径,GET POST PUT DELETE用法等.
我正在登录系统,但不确定正确的REST方式登录用户.我现在不是在处理安全问题,只是登录模式或流程.(稍后我们将添加2步oAuth,HMAC等)
可能的选择
https://api...com/v1/login.json
https://api...com/v1/users.json
登录用户的正确REST样式是什么?
我寻找到一个宁静的设计,想用HTTP方法(POST
,GET
尽可能多地,...)和HTTP标头.我已经发现了HTTP方法PUT
和DELETE
不从浏览器的支持.
现在我想要获得相同资源的不同表示,并希望通过更改Accept
请求的标头来实现此目的.根据此Accept
标头,服务器可以在同一资源上提供不同的视图.
问题是我找不到告诉我的浏览器改变这个标题的方法.
该<a..>
标签具有一个类型的属性,可以有一个MIME类型,看起来像一个很好的候选人,但头仍然是浏览器的默认(在Firefox它可以改变在about:config
与network.http.accept.default
键).
好的,这是事实.StackOverflow实现了REST风格.当您访问特定问题/ $ id/URL时,您会看到问题.内容以HTML格式返回,因为它是浏览器理解的内容.
我必须开发自己的REST服务.事实是我必须为相同的信息返回多种格式.例如,默认值可以是HTML,但我也可以返回XML或JSON.
问题是:实现这个的推荐方式是什么?三种选择(更多来自您的有用建议)
PUT(POST)操作也是如此.如果我想以不同的格式提交数据,我需要通知接收者我提供的格式,因此相同的情况(和问题)成立.
谢谢!
编辑:其他提案如下
4)为每种格式指定正确的URL,例如http://example.com/questions/12345.json.这看起来不错,但这不意味着,为了保持一致性,我们还应该有http://example.com/questions/12345.html吗?听起来如此1995 ... :)
PS:我讨厌降价将任意订单列入清单.如果我想从4开始,我应该能够做到.
如何构建一个API,其中相同的数据可以以RESTful格式以不同的格式请求.例如.
GET /person/<id> //get the details of resource <id>
Run Code Online (Sandbox Code Playgroud)
现在,根据客户端(浏览器)的要求,数据可以发送为html(比如正常呈现)或Json(比如ajax调用).所以我的怀疑是
谢谢,
BSR.