这是一个问题。这是我们的简单领域:有许多问题和答案,一个问题可能有几个答案或没有任何答案。
例:
问题:“我在哪里可以买笔?”
回答#1:“你可以在商店买笔。”
回答#2:“你可以从朋友那里借用它。”
对于以下情况,可以使用以下REST资源:
GET /questions
GET /questions/{question_id}
GET /questions/{question_id}/answers
GET /questions/{question_id}/answers/{answer_id}
但有些问题可能包含以下参数:
“ {位置A} 与 {位置B} 之间的距离是多少?” “航班的状态是什么 {flight_number} ?”
将这些问题和答案表示为REST资源的最佳方式是什么?
答案 0 :(得分:1)
您可以使用以下链接:
GET /questions/{question_id}/locationA:Zurich/locationB:Budapest/flightNumber:1234/answers
GET /questions/{question_id}/answers?locationA="Zurich"&locationB="Budapest"&flightNumber=1234
现在我不确定你在这里需要问题ID。如果问题类型数量有限,则可以为每个类型添加路径。
GET /questions/distance/from:"Zurich"/to:"Budapest"
您可以从问题标题中自动生成此内容:
GET /questions/what-is-the-distance/between:"Zurich"/and:"Budapest"
说实话,REST服务并不重要,因为它只由机器使用,也可能由开发人员用来配置路由。 REST客户端应该遵循链接而不是构建URI(HATEOAS constraint)。因此,大多数API不是REST,大多数客户端不是REST客户端......
答案 1 :(得分:0)
好的,我认为你可以建立这样的东西
GET /question /{questionid}?location=a&location2=b
和
GET /question /{questionid}?number=12345
但是,它需要考虑很多事情。
谁定义了参数名称是什么?询问问题的是来电者吗?我想,如果没有更多关于参与这些服务的参与者的想法,那么很难更具体。
很抱歉,这并不像我希望的那样有用。 :)
答案 2 :(得分:0)
如果考虑POST,我知道你正在提出问题,但同时你正在创建一个填写变量的问题。
将变量作为主体中的键值对(或词典)列表提供。