2016-06-29 11 views
1

Ich benutze RAML 1.0 im Mulesoft Api Designer.Raml 1.0 Typen mit Beispielen und Mulesoft Mocking Service

Ich würde gerne Typen/Eigenschaften verwenden, um meine API-Antworten zu beschreiben, und auch den Spottdienst aktivieren, damit ich die API ausführen und eine Beispielantwort zurückbekommen kann. Ich dachte, wenn ich dem Typ einen Beispielwert geben würde, wäre der Spottdienst in der Lage, die Beispiel-JSON-Antwort zu erzeugen. Dies ist mein Test raml

#%RAML 1.0 
title: Test 
baseUri: https://mocksvc.mulesoft.com/mocks/<removed> 

types: 

    Email: 
    description: Email address 
    example: [email protected] 

/user: 
    get: 
    responses: 
     200: 
     body: 
      application/json: 
      properties: 
       email: Email 

Wenn ich die api durch den spöttischen Dienst ausgeführt wird, erwarte ich, dass meine Antwort Körper, dies zu sein:

{ 
    "email": "[email protected]" 
} 

aber der Service berichtet, dass es keine Information und kehrt hat dieses im Körper

{ 
    "message": "RAML had no response information for application/json" 
} 

Antwort

1

Nein, es wäre eine coole Funktion, aber es funktioniert nicht so.

Sie müssen das Beispiel in der Antwort hinzuzufügen:

... 
types: 

    Email: 
    description: Email address 

/user: 
    get: 
    responses: 
     200: 
     body: 
      application/json: 
      properties: 
       email: Email 
      example: { "email": "[email protected]" } 
+0

Ich möchte Arten verwenden, um meine Datenbank-Tabellen darstellen und verschiedene APIs können Daten aus mehreren Tabellen verschachtelt zusammen zurückkehren, und wenn Ich muss das Beispiel für jede Antwort manuell erstellen, und dann mache ich eine Änderung an einer meiner Tabellen, ich muss die Antworten für alle apis, die diese Tabelle verwenden, manuell bearbeiten. –

+0

Wenn Sie Ihre Tabelle ändern, müssen Sie das Beispiel und auch den Typ ändern. Aber ja, ich sehe Ihren Punkt, wäre es cool, das Beispiel eines verschachtelten Typs aufzunehmen, könnten Sie für diese Funktion fragen https://github.com/mulesoft/api-console – Pedro

+0

Ja, aber ich muss nur Ändere den Typ und das Beispiel an einer Stelle! Ich habe ein Problem geöffnet, wenn jemand interessiert ist: https://github.com/mulesoft/api-console/issues/302 –

0

wir das Beispiel Art zu schaffen, müssen wir erwarten, lesen Sie in diesem Link http://raml.org/developers/raml-200-tutorial

unten gerade hinzugefügt Beispiel als Reaktion Körper, die wir dort kann mehrere Ergebnisse liefern.

% RAML 1,0

Titel: Test baseUri: https://mocksvc.mulesoft.com/mocks/

Typen:

E-Mail: Beschreibung: E-Mail-Adresse Beispiel: [email protected]

/user: erhalten: Antworten: 200: Körper: application/json: Eigenschaften: E-Mail: E-Mail Beispiel: "email": [{ "E-Mail": "[email protected]"} ]

0

Typen Tag in Raml ist 1,0 mächtiger . Sie haben Ihre individuelle Art Design nach Komfort und auch Seriosität des Codes erhöhen

#%RAML 1.0 
title: Brochure 
version: v1 
baseUri: https://mocksvc.mulesoft.com/mocks/63063930-851d-41cc-b021-36d8a435d800 # baseUri: http://localhost:8080 
protocols: HTTP 
mediaType: application/json 
types: 
    ModelTree: 
    type: object 
    properties: 
     modelTreeReference: string 
     brand: string 
     series?: string 
     constructionSeries?: string 
     bodyType?: string 
     AGModelCode?: string 
     UKModelCode?: string 
     levelCode?: number 
    Brochure: 
    type: object 
    properties: 
     recordNumber: number 
     partNumber: number 
     name: string 
     brand: string 
     brochureType: string 
     CRMGroup: string 
     CRMSubGroup: string 
     isActiveIndicator: string 
     modelTree: ModelTree 
    Status: 
    type: object 
    properties: 
     responseStatus: 
     enum: [COMPLETE, ERROR, FATAL] 
     responseId: number 
    Transaction: 
    type: object 
    properties: 
     status: Status 
     data: 
     type: object 
     properties: 
      brochures?: Brochure[] 
/brochures: 
    get: 
    responses: 
     200: 
     description: Status and a list of Brochures 
     body: 
      application/json: 
      example: { 
       status: { 
       responseStatus: 'COMPLETE', 
       responseId: 123 
       }, 
       data: { 
       brochures: [{ 
        recordNumber: 1, 
        partNumber: 56, 
        name: "Activity Brochure", 
        brand: "My Brand Ltd", 
        brochureType: "HARDCOPY", 
        CRMGroup: "Sales", 
        CRMSubGroup: "Lifestyle/Access", 
        isActiveIndicator: "N", 
        modelTree: { 
         modelTreeReference: "My Brand", 
         brand: "My Brand Ltd", 
         levelCode: 1 
         } 
        } 
       ] 
       } 
       } 
      type: Transaction