2016-04-06 35 views
1

我很難確定爲什麼當我嘗試創建一個新項目時不加載以下raml:Anypoint Studio無法爲APIKit加載raml,但它也說raml文件沒有問題

#%RAML 0.8 
title: MyMuleAPI API 
version: v1 
baseUri: https://localhost/api/v1 
securitySchemes: 
    - oauth_2_0: 
     description: | 
      MyCompany supports OAuth 2.0 for authenticating all API requests. 
     type: OAuth 2.0 
     describedBy: 
      headers: 
       Authorization: 
        description: | 
         Used to send a valid OAuth 2 access token. Do not use 
         with the "access_token" query string parameter. 
        type: string 
      queryParameters: 
       access_token: 
        description: | 
         Used to send a valid OAuth 2 access token. Do not use together with 
         the "Authorization" header 
        type: string 
      responses: 
       401: 
        description: | 
         Bad or expired token. This can happen if the user or Dropbox 
         revoked or expired an access token. To fix, you should re- 
         authenticate the user. 
       403: 
        description: | 
         Bad OAuth request (wrong consumer key, bad nonce, expired 
         timestamp...). Unfortunately, re-authenticating the user won't help here. 
     settings: 
      authorizationUri: https://login-dev.mycompany.com/connect/authorize 
      accessTokenUri: https://login-dev.mycompany.com//connect/token 
      authorizationGrants: [ token ] 

schemas: 
- Address: | 
    { 
     "id": "Address", 
     "title": "Address", 
     "Description": "the object for passing around addrss information", 
     "properties": { 
     "street": { 
      "description": "street including street number and appartment unit#", 
      "type": "string" 
     }, 
     "street2": { 
      "description": "second line of the address.", 
      "type": "string" 
     }, 
     "city": { 
      "description": "city name", 
      "type": "string" 
     }, 
     "state": { 
      "description": "a valid 2-letter US state abbreviation", 
      "type": "string" 
     }, 
     "zip": { 
      "description": "a 5-digit zip code", 
      "type": "string" 
     }  
     } 
    } 
- LoanApplication: | 
    { 
     "id": "LoanApplicationData", 
     "title": "LoanApplicationData", 
     "description": "loan application.", 
     "type": "object", 
     "properties": { 
     "loan_id": { 
      "description": "the Loans identifier for the loan request", 
      "type": "string" 
     }, 
     "FirstName": { 
      "description": "Applicant's first name.", 
      "type": "string" 
     }, 
     "LastName": { 
      "description": "Applicant's last name.", 
      "type": "string" 
     }, 
     "Address": { 
      "description": "applicat's address", 
      "type": "object" 
     }, 
     "Email": { 
      "description": "Applicant's email.", 
      "type": "string" 
     }, 
     "Phone": { 
      "description": "Applicant's phone, optional.", 
      "type": "string" 
     }, 
     "SSN": { 
      "description": "Applicant's SSN.", 
      "type": "string" 
     }, 
     "DateOfBirth": { 
      "description": "Applicant's date of birth.", 
      "type": "string" 
     }, 
     "YearlyIncome": { 
      "description": "Applicant's income.", 
      "type": "number" 
     } 
     } 
    } 
- LoanResponse: | 
    { 
     "id": "LoanResponse", 
     "title": "LoanResponse", 
     "Description": "the basic response telling you the current status of the loan", 
     "properties":{ 
     "loan_id": { 
      "description": "the Loan id to track this loans progress", 
      "type": "string" 
     }, 
     "status": { 
      "description": "a string describing the curernt state the loan is currently in", 
      "type": "string" 
     }, 
     "status_id": { 
      "description": "a numberic version of the status text", 
      "type": "integer" 
     } 
     } 
    } 
/application: 
    securedBy: [oauth_2_0] 
    /{loan_id}: 
    securedBy: [oauth_2_0] 
    uriParameters: 
     loan_id: 
     description: loan applicationData ID. 
     type: string 
     required: true 
     displayName: loan_id 
    put: 
     body: 
     application/json: 
      schema: LoanApplication 
     displayName: Application_Put 
     description: "Updates loan applicationData. 

      TODO: what do we allow to update." 
     responses: 
     200: 
      description: OK 
      body: 
      application/json: 
       schema: LoanApplication 
    get: 
     displayName: Application_Get 
     description: "retrieves application details" 
     responses: 
     200: 
      description: successful request 
      body: 
      application/json: 
       schema: LoanApplication 

    post: 
    body: 
     application/json: 
     schema: LoanApplication 
    displayName: Application_Post 
    description: Creates loan applicationData. 
    responses: 
     200: 
     description: OK 
     body: 
      application/json: 
      schema: LoanApplication 

error I get when attempting to create the project

當我嘗試啓動這個RAML一個項目SUB OUT的API,我得到如下: 但是當我加載腎錯構瘤無論是在API的設計,或揭開序幕anypoint的驗證,說 there are no problems

我在想什麼?

回答

1

如果我打開了API Workbench上述RAML,我得到以下警告:

enter image description here

如果我重寫的說明是這樣的:

put: 
    body: 
    application/json: 
     schema: LoanApplication 
    displayName: Application_Put 
    description: | 
    Updates loan applicationData. 

    TODO: what do we allow to update. 
    responses: 

則警告消失。也許這會解決你的問題?

+0

不幸的是,我仍然得到相同的錯誤。這是超級奇怪 –

+0

:'(如果你使用其中一個可用的解析器加載RAML,該怎麼辦? –

+0

這款raml在apideveloper工具中看起來很不錯,我爲此感到不知所措,爲什麼在Anypoint studio中失敗 –