1

我正在尝试从 API RAML 文件创建新的 API 接口 Mule 配置。首先 - 我向 Anypoint Exchange 发布了一个 API,然后将 api 从设计中心导入到 Anypoint Studio 项目。现在,当我右键单击 API RAML 文件并选择 Mule > 从 REST API 生成流时,此选项将被禁用,我无法选择它。

我正在使用 Mule 4 和 Anypoint Studio 版本:7.3.2。我验证了 AP​​I RAML 文件,其中没有明显的错误。是什么导致此选项被禁用,我该如何启用它?

下面是实际的 API RAML 文件。

#%RAML 1.0
version: v1
title: Accounts API

types:
  Account: !include datatypes/account.raml
  AccountNoID: !include datatypes/accountNoID.raml

/accounts:
  get:
    description: Retrieves accounts based on the given query parameters.
    headers:
      Requester-ID:
        description: id of the person requesting the accounts information
        required: true
    queryParameters:
      country:
        required: false
        type: string
      name:
        description: The system will look for names that contain the given value in the name parameter.
        required: false
        type: string
      type:
        required: true
        type: string
        enum: ["personal", "business"]
    responses:
      400:
        body:
          application/json:
            example: {
              "message": "Error retrieving data from the Account database."
            }
      200:
        description: Returns an array of Account objects in JSON
        body:
          application/json:
            type: Account[]
            examples:  !include examples/accountsExample.raml
  post:
    description: Creates new accounts based on a given array of Account objects.
    headers:
        Requester-ID:
          description: id of the person requesting the accounts information
          required: true
    body:
      application/json:
        description: Payload should be an array of Account objects with all fields present for each Account object.
        type: AccountNoID[]
        examples: !include examples/accountsExampleNoID.raml
    responses:
      400:
        body:
          application/json:
             example: {
               "message": "Error creating accounts. Please check the JSON object and make sure it's valid."
             }
      201:
        body:
          application/json:
            example: {
              "message": "Accounts uploaded (but not really)."
            }

4

1 回答 1

2

如果该选项不可用,则意味着 Studio 无法解析 RAML。

最近,设计中心在处理 RAML 中的示例节点方面发生了变化。

此处的详细信息:https ://docs.mulesoft.com/design-center/design-modify-raml-specs-conform

在这种情况下,Design Center 中的 RAML 是有效的,但由于 Studio 中的一个错误,目前在 Studio 中它不被视为有效。

尝试在 RAML 中为examples节点使用命名示例。

examples:  
  myNamedExample: !include examples/accountsExample.raml
于 2019-03-24T16:41:58.523 回答