खोज…


डिफ़ॉल्ट प्रतिक्रिया संदेशों को ओवरराइड करें

स्प्रिंगस्क्रीन एक डिफ़ॉल्ट डिफ़ॉल्ट संदेश को परिभाषित करता है जो डिफ़ॉल्ट रूप से सभी एपीआई नियंत्रकों पर लागू होता है। इसमें उदाहरण के लिए 201 - Created और 204 - No Content , साथ ही साथ कई 40x प्रतिक्रियाएं भी शामिल हैं। ऐसे मामले हो सकते हैं, जिनमें डिफ़ॉल्ट प्रतिक्रिया संदेश आपके एपीआई के लिए लागू नहीं होते हैं। आपको इससे निपटने की संभावनाओं का निर्माण करना होगा:

  • आप डिफ़ॉल्ट प्रतिक्रिया संदेश को चालू कर सकते हैं और @ApiResponses एनोटेशन का उपयोग करके अपने स्वयं को परिभाषित कर सकते हैं।
  • आप विश्व स्तर पर अपने स्वयं के प्रतिक्रिया संदेशों को परिभाषित कर सकते हैं

डिफ़ॉल्ट प्रतिक्रिया संदेशों की बारी

docket.useDefaultResponseMessages(false);

अब आप अपने व्यक्तिगत प्रतिक्रिया संदेशों को प्रति-नियंत्रक स्तर पर सेट कर सकते हैं। उदाहरण के लिए

 @ApiResponses(value = {
        @ApiResponse(code=400, message = "This is a bad request, please stick to the API description", response = RestApiExceptionModel.class),
        @ApiResponse(code=401, message = "Your request cannot be authorized.", response = RestApiExceptionModel.class)
 })

अपने स्वयं के डिफ़ॉल्ट प्रतिक्रिया संदेश सेट करें

ModelRef errorModel = new ModelRef("RestApiExceptionModel");
List<ResponseMessage> responseMessages = Arrays.asList(
        new ResponseMessageBuilder().code(401).message("Unauthorized").responseModel(errorModel).build(),
        new ResponseMessageBuilder().code(403).message("Forbidden").responseModel(errorModel).build(),
        new ResponseMessageBuilder().code(404).message("NotFound").responseModel(errorModel).build());

docket.globalResponseMessage(RequestMethod.POST, responseMessages)
        .globalResponseMessage(RequestMethod.PUT, responseMessages)
        .globalResponseMessage(RequestMethod.GET, responseMessages)
        .globalResponseMessage(RequestMethod.DELETE, responseMessages);

स्प्रिंग-बूट में स्वैगर-उई का उपयोग करके स्प्रिंगफ़ॉक्स सेटअप करें

  1. मावेन या ग्रैडल का उपयोग करके अपने आवेदन में स्प्रिंगफॉक्स प्राप्त करें
  2. अपने आवेदन में एक नया डॉकटर बीन बनाएं और इसे कॉन्फ़िगर करें
  3. अपनी आवश्यकताओं के अनुसार अपने एपीआई दस्तावेज़
  4. अपना एप्लिकेशन लॉन्च करें और अपने प्राप्त परिणाम देखें

# 1 मावेन के साथ स्प्रिंगफ़ॉक्स हो रही है

अपने pom.xml में swagger2 और swagger-ui के लिए निर्भरता जोड़ें

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.0</version>
</dependency>

# 2 स्वैगर का उपयोग करने के लिए अपने एप्लिकेशन को कॉन्फ़िगर करें

अपने @SpringBootApplication एनोटेट मुख्य वर्ग में एनोटेशन @EnableSwagger2 जोड़ें और इस (या किसी अन्य) कॉन्फ़िगरेशन वर्ग के भीतर एक स्वैगर @SpringBootApplication बीन बनाएं।

@Bean
public Docket api() {                
    return new Docket(DocumentationType.SWAGGER_2)          
      .select()                                       
      .apis(RequestHandlerSelectors.any())
      .paths(PathSelectors.any())                     
      .build();
}

यह कॉन्फ़िगरेशन आपके एप्लिकेशन के भीतर सभी स्प्रिंग कंट्रोलर पर एक एपीआई प्रलेखन उत्पन्न करेगा। यदि आपको एपीआई प्रलेखन पीढ़ी को कुछ नियंत्रकों तक सीमित करने की आवश्यकता है, तो आप विभिन्न RequestHandlerSelectors के बीच चयन कर सकते हैं। जैसे आप RequestHandlerSelectors.basePackage("your.package.structure") या आपके द्वारा RequestHandlerSelectors.withClassAnnotation(Api.class) का उपयोग करके एनोटेट आधारित विशिष्ट वर्गों का उपयोग करके अपने पैकेज संरचना के आधार पर अपने एपीआई प्रलेखन उत्पन्न कर सकते हैं।

# 3 अपने एपीआई दस्तावेज

दस्तावेज़ में वर्णित एनोटेशन का उपयोग करें, अपने नियंत्रक वर्गों और तरीकों को अतिरिक्त जानकारी के साथ बढ़ाने के लिए। अपने एपीआई की सामान्य जानकारी का वर्णन करने के लिए, सामान्य शीर्षक, विवरण या संस्करण की तरह, अपने डॉकेट बीन के भीतर ApiInfoBuilder () का उपयोग करें।

ApiInfoBuilder का उपयोग कर मेटाडेटा परिभाषा के लिए उदाहरण:

// Within your configuration class
public static ApiInfo metadata(){
    return new ApiInfoBuilder()
            .title("Your Title")
            .description("Your Description")
            .version("1.x")
            .build();
}

// Within your method that definies the Docket bean...
docket.apiInfo(metadata());


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow