मेरी प्रोजेक्ट में हम RestEasy का उपयोग करके आरईएसटी इंटरफेस बनाते हैं और उन्हें दस्तावेज करने के लिए Swagger का उपयोग करते हैं। समस्या यह है कि इस में कई एनोटेशन आवश्यकता है, और ऐसा दिखाई दे सकता है:मेसी आरईएसटी एनोटेशन
@ApiOperation(value = "Create a person object",
notes = "Create a person object" +
"Return the newley created person object",
response = Person.class)
@ApiResponses({
@ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = "Internal server error"),
@ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = "Unauthorized"),
@ApiResponse(code = HttpStatus.SC_PRECONDITION_FAILED, message = "Precondition failed"),
@ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = "Bad request"),
@ApiResponse(code = HttpStatus.SC_UNPROCESSABLE_ENTITY, message = "Unprocessable entity")
})
@POST
@Path("rest/v1/persons")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
Person createPerson(
@HeaderParam("SecurityToken") String token,
@ApiParam(value = "person", defaultValue = "{ \"name\": = \"Bart Simpson\", \"age\": = 9 }") Person person);
एनोटेशन के अधिकांश कम या ज्यादा हमारे सभी तरीकों में ही दिखते हैं। इसलिए हम बहुत प्रतिलिपि बनाते हैं और पेस्ट करते हैं, और इन सभी टिप्पणियों से हमारे इंटरफेस काफी पढ़े जा सकते हैं और यह कहना मुश्किल है कि विधियां क्या कर रही हैं।
तो मुझे आश्चर्य है कि अगर किसी के पास कोई विचार है कि हम एक ही कार्यक्षमता कैसे प्राप्त कर सकते हैं लेकिन किसी भी तरह से उन सभी एनोटेशन को छुपाएं, या कम से कम उनमें से कुछ को छुपाएं।
मुझे स्वैगर नहीं पता लेकिन शायद यह रूढ़िवाद का समर्थन करता है। इस तरह आप उन सभी @ApiXxx एनोटेशन को कम करने में सक्षम हो सकते हैं। – Thomas
मुझे लगता है कि मुख्य मुद्दा @ApiResponses के साथ है? – Ron
क्या स्वैगर मेटा-एनोटेशन का समर्थन करता है? यह सामान्य वसंत दृष्टिकोण है। – chrylis