2014-10-03 11 views
5

Czy istnieje sposób sprawdzenia poprawności przychodzącego schematu przez zestaw narzędzi API Kit? Mam następujące pliki w moim pliku RAML, ale nie sprawdza poprawności przychodzących schematów.Zestaw narzędzi API do sprawdzania poprawności schematu routera

- emails: | 
     { 
     "$schema": "http://json-schema.org/draft-04/schema#", 
     "type" : "object", 
     "properties" : { 
      "email" : { 
      "type" : "string" 
      }, 
      "name" : { 
      "type" : "string" 
      }, 
      "emailOrigin" : { 
      "type" : "string" 
      } 
     } 
     } 

resourceTypes: 
    - postbase: 
     post: 
     responses: 
      200: 
      body: 
       application/json: 
      500: 
      body: 
       application/json: 
    - putBase: 
     put: 
     responses: 
      200: 
      body: 
       application/json: 
      500: 
      body: 
       application/json: 

/emails: 
    type: postbase 
    post: 
    description: | 
     Recieve emails captured from various parts of the site. 
    body: 
    schema: emails 
+0

mógłbyś pisać JSON, który cię spodziewać się w tym przypadku porażki? – Sudarshan

+0

Byłem wyłączony z tego projektu od około 2 tygodni po tym, jak napisałem post (w rzeczywistości w innej firmie). To, czego szukałem, to to, że jeśli ktoś wysyła int, zamiast ciągu, to powinien zawieść. Z perspektywy czasu przypuszczam, że cokolwiek powinno zostać zaakceptowane przez ciąg znaków, ale być może, gdybym zdefiniował pole int i wysłał ciąg znaków, to faktycznie by się nie udało. Prawdopodobnie potrzebowałem również pola. W tym momencie jest to po prostu ćwiczenie dla każdego, kto może wyszukać to pytanie, ponieważ nie używam RAML w moim bieżącym projekcie. – SteveS

Odpowiedz

0

O ile widzę, wszelkie ciała będą ważne dla tego schematu. Wszystkie pola są ciągami, nie są wymagane, nie ma określonego formatu. Spróbuj umieścić niektóre pola zgodnie z wymaganiami i zobaczyć, co się stanie

Pozdrawiam!

+0

Myślę, że masz rację, z perspektywy czasu sądzę, że wszystko by się potwierdziło w stosunku do tego schematu. Jak stwierdzono w powyższym komentarzu, jestem wyłączony z tego projektu i nie używam już RAML, więc nie będę w stanie potwierdzić twojego rozwiązania, ale wygląda ono poprawnie. – SteveS

1

Poniższe odnośniki pomogą Ci dalszych http://forums.raml.org/t/examples-validations-in-raml-parsers/80

kolejny przykład jak poniżej: employeeDetailsSchema.json plik

{ 
    "type": "object", 
    "$schema": "http://json-schema.org/draft-03/schema", 
    "id": "http://jsonschema.net", 
    "required": true, 
    "properties": { 
     "employeeID": { 
      "type": "string", -------> Validates the Data type 
      "required": true -------> Validates whether data is present or not 
     }, 
     "employeeFirstName": { 
      "type": "string", 
      "required": true 
     }, 
     "employeeLastName": { 
      "type": "string", 
      "required": true 
     }, 
     "employeeDOB": { 
      "type": "string", 
      "required": true 
     } 
    } 
} 

Schemat używany w moim Raml

#%RAML 0.8 
title: ManageEmployees 
version: 1.0 

baseUri: http://api.acme.com/ 

mediaType: application/json 


/newEmployee: 
    post: 
    description: Create new employees 

    body: 
      schema: !include com/ww/schema/employeeDetailsSchema.json 

    put: 
    description: Update employees details 
    body: 
      schema: !include com/ww/schema/employeeDetailsSchema.json 

    responses: 
      200: 
      body: 
       example: !include com/ww/schema/employeeExample.json 
+0

Minęło sporo czasu odkąd tego szukałem, ale uważam, że "wymagany" mógł być tym, czego szukałem. – SteveS

Powiązane problemy