2016-02-15 10 views
8

के लिए स्वैगर दस्तावेज़ मैंने स्प्रिंग बूट का उपयोग करके एक माइक्रोस्कोस विकसित किया है। आरईएसटी एपीआई के लिए प्रलेखन स्वैगर के साथ बनाया गया है। कुछ आरईएसटी संसाधन मुक्त करने के लिए अंकन प्रदान करने के लिए वसंत अवधारणाओं का उपयोग करते हैं।स्प्रिंग पेजेबल इंटरफ़ेस

@RequestMapping(value = "/buckets", method = GET) 
public PagedResources list(Pageable pageable, PagedResourcesAssembler assembler) { 
    return bucketService.listBuckets(pageable, assembler); 
} 

अगर मैं स्वैगर पेज खोलते हैं, तो निम्नलिखित प्रपत्र संसाधन के लिए उपलब्ध है: नीचे एक उदाहरण है

enter image description here

मुद्दा रहा है कि पृष्ठांकन योग्य पैरामीटर सामग्री के साथ पाया जाता है है -टाइप एप्लिकेशन/जेसन और मुझे नहीं पता कि उदाहरण के लिए पेज आकार बदलने के लिए मूल्य कैसे पास किया जाए। सभी मूल्यों को अनदेखा किया प्रतीत होता है।

क्या क्वेरी पैरामीटर को JSON ऑब्जेक्ट के रूप में पास करना संभव है? या पेजेबल इंटरफ़ेस द्वारा निहित गेटर्स के लिए स्वतंत्र क्वेरी पैरामीटर फ़ील्ड जेनरेट करने के लिए स्वैगर को कॉन्फ़िगर करना संभव है?

कृपया ध्यान दें कि मैं Gradle साथ Springfox उपयोग कर रहा हूँ:

compile 'io.springfox:springfox-spring-web:2.3.1' 
compile 'io.springfox:springfox-swagger2:2.3.1' 
compile 'io.springfox:springfox-swagger-ui:2.3.1' 
+0

आप वसंत-लोमड़ी उपयोग कर रहे हैं बाकी नियंत्रक से स्वैगर कल्पना उत्पन्न करने के लिए:

तो मैं स्ट्रिंग के लिए पूर्णांक बदल? –

+0

हां, मैं संस्करण _2.3.1_ में स्प्रिंगफ़ॉक्स का उपयोग कर रहा हूं। – Laurent

उत्तर

15

यह वसंत-फॉक्स के साथ एक ज्ञात समस्या है। समस्या #755 देखें। इस समय zdila की टिप्पणी 2 के आधार पर वैकल्पिक विकल्प @ApiImplicitParams जोड़ना है जो आदर्श नहीं है लेकिन यह काम करता है।

@ApiImplicitParams({ 
    @ApiImplicitParam(name = "page", dataType = "integer", paramType = "query", 
      value = "Results page you want to retrieve (0..N)"), 
    @ApiImplicitParam(name = "size", dataType = "integer", paramType = "query", 
      value = "Number of records per page."), 
    @ApiImplicitParam(name = "sort", allowMultiple = true, dataType = "string", paramType = "query", 
      value = "Sorting criteria in the format: property(,asc|desc). " + 
        "Default sort order is ascending. " + 
        "Multiple sort criteria are supported.") 
}) 

[Swagger UI showing @ApiImplicitParams for Pageable]

1https://github.com/springfox/springfox/issues/755

2https://github.com/springfox/springfox/issues/755#issuecomment-135059871

+1

मैंने पाया कि मुझे 'डेटा टाइप = "int" का उपयोग करना था, अन्यथा डेटा प्रकार चित्र में दिखाए गए अपरिभाषित के रूप में बाहर आता है। – pauli

2

@ApiImplicitParams साथ विनीत भाटिया के जवाब ठीक लग रहा है। लेकिन मुझे स्थिति का सामना करना पड़ा, जब @ApiIgnor और @ApiParam(hidden = true) काम नहीं करता है और आप अभी भी असेंबलर और पेजेबल पैराम्स देख सकते हैं। मैं अपने SwaggerConfig में डॉकेट सेम करने के लिए अगली पंक्ति

docket.ignoredParameterTypes(Pageable.class, PagedResourcesAssembler.class); 

जोड़कर इस समस्या तय।

2

विनीत भाटिया के उत्तर में स्थानीयहोस्ट पर नहीं चलने पर सत्यापन समस्या होगी। यह पूर्णांक पैरामीटर के लिए बहस करेगा कि वे जेसन स्कीमा से संबंधित नहीं हैं।

@ApiImplicitParams({ 
     @ApiImplicitParam(name = "page", dataType = "string", paramType = "query", 
       value = "Results page you want to retrieve (0..N)"), 
     @ApiImplicitParam(name = "size", dataType = "string", paramType = "query", 
       value = "Number of records per page."), 
     @ApiImplicitParam(name = "sort", allowMultiple = true, dataType = "string", paramType = "query", 
       value = "Sorting criteria in the format: property(,asc|desc). " + 
         "Default sort order is ascending. " + 
         "Multiple sort criteria are supported.") 
}) 
संबंधित मुद्दे