Api 是从主体类型(RAML)中排除属性的方法吗?
当您使用类型并使用RAML 1.0编写API时,是否有方法从请求体中排除一个或多个属性 我会解释的。我有一个类型:“Order”和一组属性。我有一个资源Api 是从主体类型(RAML)中排除属性的方法吗?,api,raml,Api,Raml,当您使用类型并使用RAML 1.0编写API时,是否有方法从请求体中排除一个或多个属性 我会解释的。我有一个类型:“Order”和一组属性。我有一个资源/orders和一个允许用户创建新订单的方法post。 请求主体是order struct json,响应也是order struct 但我不希望用户在提交请求时指定订单id。但该id(以及更多“仅响应”字段)将在响应时返回。我不想创建一个额外的类型,比如OrderRequest,然后用Order类型继承它,也许有一个更优雅的解决方案 因此,我想
/orders
和一个允许用户创建新订单的方法post
。
请求主体是order struct json,响应也是order struct
但我不希望用户在提交请求时指定订单id。但该id(以及更多“仅响应”字段)将在响应时返回。我不想创建一个额外的类型,比如OrderRequest
,然后用Order
类型继承它,也许有一个更优雅的解决方案
因此,我想有一种方法从请求主体中排除一些属性,并保留其他属性,以便使用它们的描述和示例
感谢并抱歉我的英语:)使用两种类型。第二个将是第一个的孩子。例如:
#%RAML 1.0
title: GitHub API
version: v3
baseUri: https://api.github.com
mediaType: application/json
types:
OrderCreating:
type: object
properties:
products:
description: List of product ids with amount.
required: true
type: object
properties:
[]:
type: number
coupon?: string
Order:
type: OrderCreating
properties:
id: integer
price: number
...
/orders:
post:
body:
application/json:
type: OrderCreating
/{orderId}:
get:
responses:
200:
body:
application/json:
type: Order
您还可以在类型声明中包含。由于您不想创建具有继承性的额外类型,您仍然可以将字段标记为可选字段,并记录它在响应中的存在