2013-05-27 4 views
5

मैं आईएनआई स्कैला लिखित एक आंतरिक आरईएसटी एपीआई दस्तावेज कर रहा हूं, दुर्भाग्यवश हम स्वैगर को एकीकृत करने में सक्षम नहीं हैं, इसलिए अब हम डॉक्टर जनरेटर के लिए इन-हाउस समाधान के साथ जा रहे हैं। मैं यह दिखाने के लिए एक JSON-Schema उत्पन्न करना चाहता हूं कि हमारे संसाधनों को प्राप्त करते समय प्रतिक्रिया कैसे होती है। मैं बस सोच रहा हूं कि पहले से मॉडल किए गए केस क्लास का लाभ उठाकर ऐसा करने के लिए कोई शॉर्टकट है या नहीं।क्या स्कैला केस क्लास पदानुक्रम से JSON-Schema प्राप्त करने का कोई तरीका है?

उत्तर

3

autoschema परियोजना स्कैला केस कक्षाओं से JSON स्कीमा निर्यात करने में सक्षम है। इस प्रकार आप इसका इस्तेमाल कर सकते हैं:

case class MyType(myValue: Int) 
AutoSchema.createSchema[MyType] 

Maven विरूपण साक्ष्य अब उपलब्ध नहीं हो रहा है लेकिन यह एक एसबीटी परियोजना Github पर उपलब्ध है तो आप या तो स्रोतों कॉपी कर सकते हैं, एक जार का निर्माण या के साथ एक निर्भरता के रूप में जोड़ें अपने build.sbt में रखकर एसबीटी निम्नलिखित:

lazy val autoschemaProject = 
    ProjectRef(uri("https://github.com/coursera/autoschema.git"), "autoschema") 

lazy val root = (project in file(".")).dependsOn(autoschemaProject) 

मैं एसबीटी 0.13.7 के साथ इस परीक्षण किया गया। ध्यान दें कि ऑटोस्केमा की अपनी निर्भरताएं हैं (मुख्य रूप से play-json 2.3.2) ताकि आपको अपने संस्करणों को अपने प्रोजेक्ट निर्भरताओं के साथ संस्करण विवादों से बचने के लिए बदलने की आवश्यकता हो।

1

@mziccard के रूप में, ऑटोस्केमा जाने का रास्ता है। हालांकि, यह थोड़ी देर हो गया है क्योंकि मुख्य भंडार पर कुछ गतिविधि हुई है। मैंने इसे फोर्क करने के लिए कुछ समय लगाया और इसकी निर्भरताओं और बहिष्कृत कोड को अपडेट किया (काम जो अन्य कांटे में किया गया था, मैंने इसे आसानी से जोड़ा)। अब यह मेरी कांटा के तहत Maven केंद्रीय में प्रकाशित हुआ है:

https://github.com/sauldhernandez/autoschema

आप build.sbt में इस डाल कर इसका इस्तेमाल कर सकते हैं:

libraryDependencies += "com.sauldhernandez" %% "autoschema" % "1.0.0"

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