2017-12-30 119 views
7

को अनदेखा कर रहा है मैंने अपने स्वैगर दस्तावेज़ों पर अधिक जानकारी जोड़ने की कोशिश की है, लेकिन मुझे विशिष्ट में @ApiPropertyModel एनोटेशन के साथ कुछ समस्याएं हैं।कोंगचेन स्वैगर @ एपीमोडेलप्रोपर्टी एनोटेशन

इससे कोई फर्क नहीं पड़ता कि मैं क्या करने का प्रयास करता हूं, यह काम नहीं करता है। प्लगइन Swagger.json सही ढंग से उत्पन्न कर रहा है, सभी @ApiOperation एनोटेशन आरईएसटी संसाधनों के लिए काम कर रहे हैं, लेकिन मॉडल भाग के लिए, यह केवल मॉडल वर्गों के गुणों का आत्मनिरीक्षण करता है और उनके ऊपर एनोटेशन को नहीं देखता है।

<plugin> 
    <groupId>com.github.kongchen</groupId> 
    <artifactId>swagger-maven-plugin</artifactId> 
    <version>3.1.5</version> 

    <configuration> 
     <apiSources> 
      <apiSource> 
       <locations> 
        <location>com.example.rest.resources</location> 
        <location>com.example.rest.model</location> 
       </locations> 
       <swaggerDirectory>${project.build.directory}/generated-sources</swaggerDirectory> 
       <basePath>/path/to/the/api</basePath> 
       <info> 
        <title>My RESTful API Documentation</title> 
        <version>${project.version}</version> 
       </info> 
      </apiSource> 
     </apiSources> 
    </configuration> 

    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>generate</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

अगर मैं उदाहरण के लिए:

@ApiModelProperty(example = "test example") 
public String test; 

यह test संपत्ति उत्पन्न होगा, लेकिन यह किसी भी उदाहरण या किसी अन्य संपत्ति नहीं बनाएगा

यहाँ कैसे प्लगइन कॉन्फ़िगर किया गया है कि मैंने उस एनोटेशन में स्थापित किया है। एक गेटटर में इसका उपयोग करते समय भी ऐसा ही हो रहा है, इसलिए मुझे लगता है कि यह समस्या नहीं है।

क्या मैं कुछ गलत कर रहा हूं? इसके अलावा, मैंने कंचन के उदाहरण प्रोजेक्ट को देखा और मैं इसे काम करने के लिए कुछ विशेष नहीं देख सका।

+0

यह जानने में मदद करेगा कि पीओएम में कॉन्फ़िगर किए गए पैकेज और पथ सभी सही हैं या नहीं। यदि आप मॉडल कैल्स के पैकेज स्टेटमेंट पेस्ट करते हैं, तो इससे मदद मिलेगी। क्या आप कक्षा के स्तर पर उपयोग की जाने वाली सभी एनोटेशन के साथ एक संपूर्ण जावा मॉडल क्लास पेस्ट भी कर सकते हैं? – tkruse

+0

संबंधित: https://stackoverflow.com/questions/32900551/swagger-apimodelproperty-not-working – tkruse

+0

संबंधित के रूप में जोड़ने के लिए धन्यवाद, लेकिन यह दुख की बात है कि इसमें कोई जवाब नहीं है। :/ –

उत्तर

0

शायद आप अपने मॉडल कक्षाओं पर @ApiModel एनोटेशन भूल गए हैं?

तरह:

@ApiModel 
public class PostRequest { 

    @ApiModelProperty(example = "test example") 
    public String test; 

} 

या अपने मॉडल पैकेज से मेल नहीं खाता pom.xml में दी गई है।

+0

नहीं, मैंने इसे जोड़ा, जैसा कि मैंने कहा था, मॉडल वर्ग भी सही ढंग से आत्मनिरीक्षण हैं, फ़ील्ड swagger.json फ़ाइल में अपेक्षित दिखाई देते हैं , लेकिन वह विशिष्ट एनोटेशन सिर्फ काम नहीं करता है। :/ –

+0

फ़ील्ड मुझे लगता है कि @ApiModel एनोटेशन के बिना भी दिखाई देगा, इसलिए यह सबूत नहीं है। – tkruse

1

मैं कोड के साथ फिर से गड़बड़ करने की कोशिश कर रहा था, और मुझे पता चला है कि समस्या परियोजना की संरचना पर है। इसमें अलग-अलग मॉड्यूल हैं, और इसमें सामान्य विकास और प्रोफ़ाइल के लिए एक प्रोफ़ाइल है जो केवल विश्वसनीय API दस्तावेज़ों के लिए है।

मैं थोड़ी देर के लिए विचलित हो गया था और mvn clean package का उपयोग करके परियोजनाओं का निर्माण करना शुरू कर दिया था, और क्योंकि इसमें प्रोजेक्ट का एक संस्करण स्थापित था, यह दस्तावेज़ीकरण बनाने के लिए इसका उपयोग कर रहा था, और यही कारण है कि मैं कभी भी बदल नहीं रहा था मुख्य स्रोत कोड में mvn clean install मैं एनोटेशन को कोई प्रभाव डाल सकता हूं।

मुझे खेद है दोस्तों, यह किसी भी जानकारी से परे था जो मैं प्रलेखन प्रोजेक्ट के बारे में दे सकता था, क्योंकि यह पूरी संरचना का उपयोग कर रहा था। लेकिन कम से कम मैं यह जवाब रखूंगा ताकि अगले व्यक्ति को इसके बारे में पता हो।

आपके ध्यान के लिए धन्यवाद!

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