在定义RAML时,在响应正文中,我们将根据状态代码(如200,400等)定义响应。 为什么需要单独定义?
sample RAML
responses:
200:
body:
type: User
400:
body:
type: ErrorMessage
从控制器我可以像
一样发送 response = Request.CreateResponse(HttpStatusCode.Ambiguous, error);
这会将响应创建为300状态。
在击中Postman的api时,我能够获得状态为300的响应。
那么真的需要为不同的状态代码定义响应吗?
答案 0 :(得分:0)
我认为你误解了RAML是什么。
RAML正在记录您的API,但它没有实现您的API。所以是的,您可以拥有一个与RAML指定的实现不同的实现。
是否真的需要为不同的状态代码定义响应?
不,在RAML中整个responses is optional。所以你可以把它留下来。
但是我们的想法是你尽可能地将RAML指定为尽可能接近,所以它对你和其他人都很有用。
在定义RAML时,在响应正文中我们将基于定义响应 状态代码如200,400等。为什么单独定义是 需要?
不同的状态代码通常表示不同的响应数据。
例如,如果您通过id (/ dogs / 1)获得一只狗,那么如果找到了狗,您将返回状态代码 200 ,并且正文将包含关于狗的数据。例如{ name: "foo", colour: "brown", ...}
另一方面,如果没有id为1的狗,那么您将返回状态代码 404 ,并在正文中返回:{ message: "a dog with id 1 was not found" }
答案 1 :(得分:0)
是否真的需要为不同的状态代码定义响应?
RAML是一种生成文档和客户端的方法。当然,你可以证明你将返回一个X体并实际返回Y体,但所有这些都会让消费者烦恼。
因此,您可以为所有响应代码返回相同的响应类型,或者在响应类型因响应代码而异的情况下进行记录。