2014-10-03 26 views
5

क्या एपीआई किट राउटर आने वाली स्कीमा को सत्यापित करने का कोई तरीका है? मेरे पास मेरी आरएएमएल फ़ाइल में निम्न है लेकिन यह आने वाली स्कीमा को मान्य नहीं करता है।एपीआई किट राउटर स्कीमा सत्यापन

- 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

आप JSON पोस्ट किया जा सका है कि कौन सा इस मामले में असफल होने की उम्मीद है? – Sudarshan

+0

मैंने पोस्ट को बनाने के लगभग 2 सप्ताह बाद (वास्तव में एक अलग कंपनी में) इस परियोजना को बंद कर दिया है। जो मैं खोज रहा था वह था अगर कोई स्ट्रिंग के बजाय int भेजता है तो उसे असफल होना चाहिए। पूर्वदर्शी में मुझे लगता है कि किसी भी स्ट्रिंग द्वारा कुछ भी स्वीकार किया जाना चाहिए, लेकिन शायद अगर मैंने एक int फ़ील्ड परिभाषित किया है और एक स्ट्रिंग भेजी है तो यह असफल हो गई होगी। मुझे शायद एक फ़ील्ड की आवश्यकता भी है। इस बिंदु पर यह किसी और के लिए एक अभ्यास है जो इस सवाल की खोज कर सकता है क्योंकि मैं अपने वर्तमान प्रोजेक्ट में आरएएमएल का उपयोग नहीं कर रहा हूं। – SteveS

उत्तर

0

जहां तक ​​मैं देख सकता हूं, कोई भी शरीर उस स्कीमा के लिए मान्य होगा। सभी फ़ील्ड स्ट्रिंग हैं, आवश्यक नहीं, कोई विशिष्ट प्रारूप नहीं। कुछ फ़ील्ड को आवश्यकतानुसार डालने का प्रयास करें और देखें कि

चीयर्स!

+0

मुझे लगता है कि आप सही हैं, पीछे की ओर मुझे लगता है कि सब कुछ उस स्कीमा के खिलाफ मान्य होगा। जैसा कि ऊपर मेरी टिप्पणी में बताया गया है, मैं उस परियोजना से बाहर हूं और अब आरएएमएल का उपयोग नहीं कर रहा हूं इसलिए मैं आपके समाधान की पुष्टि करने में सक्षम नहीं हूं लेकिन यह सही दिखता है। – SteveS

1

निम्नलिखित संदर्भ मदद से आप आगे http://forums.raml.org/t/examples-validations-in-raml-parsers/80

इसके अलावा, जैसा कि नीचे उदाहरण: employeeDetailsSchema.json

{ 
    "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 
     } 
    } 
} 

स्कीमा मेरी 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

यह काफी समय से रहा है क्योंकि मैं इसकी तलाश कर रहा था लेकिन मेरा मानना ​​है कि "आवश्यक" हो सकता है जो मैं ढूंढ रहा था। – SteveS

संबंधित मुद्दे