2017-02-03 65 views
1

我正在尝试创建一个数据类型.raml文件。出于某种原因,它指出我是'指定未知构面'类型'是一个错误。RAML未知构面“类型”

在RAML中定义对象的正确方法是什么?

#%RAML 1.0 DataType 
types: 
    Account: 
    type: object 
    displayName: Account 
    description: Salesforce Account Object 
    properties: 
     id: 
     type: string 
     description: Id of the Salesforce Account 
     ns_id: 
     type: string 
     description: Id of NetSuite Customer 
     name: 
     type: string 
     description: Name of Salesforce Account 
     phone: 
     type: string 
     description: Phone Number of Salesforce Account 
     website: 
     type: string 
     description: Website of the Salesforce Account 
     owner: 
     type: string # This probably needs to be of type Owner 
     description: Owner of Account 
     active_cmrr: 
     type: number 
     description: Active CMRR of Account 
     billing_address: 
     type: string 
     description: Billing Address of Account 
     subscription_start_date: 
     type: date-only 
     description: Salesforce Account Subscription Start Date 
     subscription_end_date: 
     type: date-only 
     description: Salesforce Account Subscription End Date 
     #Sometype of Opportunity list 
     #opportunities: 
     # type: Opportunity[] 
     # description: List of Account Opportunities 

回答

4

您目前正在使用所谓的RAML片段,它只关注单个定义。在你的情况下一个单一的类型定义。

您开始通常在根RAML文件(用#%RAML 1.0表示)或库(用#%RAML 1.0 Library表示)中使用types定义多个类型定义。因此,根据您尝试实现的目标,您可以修改数据类型片段以仅包含Account类型的定义,或者将#%RAML 1.0 DataType更改为#%RAML 1.0 Library,以便您可以将多个类型定义打包为一个;或者你同时使用这两个最大可重用性。

让我告诉你如何使用这两种:

account.raml

#%RAML 1.0 DataType 

type: object 
displayName: Account 
description: Salesforce Account Object 
properties: 
    id: 
    type: string 
    description: Id of the Salesforce Account 
    ns_id: 
    type: string 
    description: Id of NetSuite Customer 
    name: 
    type: string 
    description: Name of Salesforce Account 
    phone: 
    type: string 
    description: Phone Number of Salesforce Account 
    website: 
    type: string 
    description: Website of the Salesforce Account 
    owner: 
    type: string # This probably needs to be of type Owner 
    description: Owner of Account 
    active_cmrr: 
    type: number 
    description: Active CMRR of Account 
    billing_address: 
    type: string 
    description: Billing Address of Account 
    subscription_start_date: 
    type: date-only 
    description: Salesforce Account Subscription Start Date 
    subscription_end_date: 
    type: date-only 
    description: Salesforce Account Subscription End Date 
    #Sometype of Opportunity list 
    #opportunities: 
    # type: Opportunity[] 
    # description: List of Account Opportunities 

types.raml

#%RAML 1.0 Library 

types: 
    Account: !include account.raml 

在其他类型定义你可以母鸡使用库来引用帐户类型。例如:

bank.raml

#%RAML 1.0 DataType 

uses: 
    types: types.raml 

type: object 
properties: 
    branch: string 
    accounts: 
    type: array 
    items: types.Account 

希望帮助你!如果您还有其他问题,请告诉我。