json Schema

时间:2016-05-19 07:19:01

标签: mule anypoint-studio

我在下面的anypoint平台上创建了一个raml是我的RAML文件

#%RAML 0.8
title: es-be-crm-dev
version: 001-dev
#baseUri: http://localhost:8081/api     
baseUri: https://mocksvc.mulesoft.com/mocks/44267573-73b2-4369-8e2d-         3a6abbf20e34/api
traits: 
 - rate-limited: 
   queryParameters: 
   client_id: 
    type: string 
   client_secret: 
    type: string   
schemas:
  - api-request-schema: !include schemas/api-request-schema.json


/teams/{teamId}/teamMembers:
post:
  description: Delete Team Member(s) from specified Team

  headers:
    Accept:
      displayName: Accepted response format
      description: Caller accepted response content Type
      type: string
      example: application/json
      required: true
      default: application/json
    Content-Type:
      displayName: body Mime Type
      description: Caller accepted response content Type
      type: string
      example: application/json
      required: true
      default: application/json
  body: 
    application/json:
      schema: api-request-schema
      example: !include examples/api-request-example.json

  responses:
    201:
      description: Returned when the entity has been successfully created
      headers:
        ETag:
          displayName: Entity Tag
          description: Hash of the previously requested resource
          type: string
          example: asd8asd98hlk209u098asdfmoiun4023
          required: false          
    401:
      description: Returned when the user is not authorized to add a member


delete:
  description: Adds Team Member(s) in specified Team

  headers:
    Accept:
      displayName: Accepted response format
      description: Caller accepted response content Type
      type: string
      example: application/json
      required: true
      default: application/json
    Content-Type:
      displayName: body Mime Type
      description: Caller accepted response content Type
      type: string
      example: application/json
      required: true
      default: application/json

  body: 
    application/json:
      schema: api-request-schema
      example: !include examples/api-request-example.json

  responses:
    201:
      description: Returned when the entity has been successfully created
      headers:
        ETag:
          displayName: Entity Tag
          description: Hash of the previously requested resource
          type: string
          example: asd8asd98hlk209u098asdfmoiun4023
          required: false          
    401:
      description: Returned when the user is not authorized to delete a member       
下面的

是api-request-example.json

{
  "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "object",
   "properties": {
  "teamMembers": {
    "type": "array",
     "items": {
     "type": "object",
    "properties": {
      "teamMember": {
        "type": "object",
        "properties": {
          "empID": {
            "type": "string"
          },
          "sourceSystemId": {
            "type": "string"
          },
          "sourceSystemObjectId": {
            "type": "string"
          }
        },
        "required": [
          "empID",
          "sourceSystemId",
          "sourceSystemObjectId"
        ]
      }
      },
      "required": [
      "teamMember"
    ]
    }
  }
  },
 "required": [
"teamMembers"
 ]
}

下面是示例文件

 {
  "teamMembers": [{
    "teamMember": {
        "empID": "d3193f53-5f07-e611-80e3-a45d36fc4f90",
        "sourceSystemId": "abc",
        "sourceSystemObjectId": "abc"

    }
    }]
}

每当我尝试模拟我的api时,就会抛出状态码为400的错误

{
 "error": "schema did not parse: Unexpected token a"
}

这里有什么我想念的???

1 个答案:

答案 0 :(得分:0)

错误消息显示mule无法解析您的架构,这可能是因为您使用的ApiKit版本不支持别名。 这就是他所说的can't parse a

使用直接包含

进行更改
schema: !include api-request-schema.json

我知道这并不理想,但只是写一点。