±à¼ÍƼö: |
±¾ÎÄÀ´×Ô³ÌÐòÔ³£¬±¾ÎÄÖ÷Òª½éÉÜÁËSpring
Cloud΢·þÎñÏ·þÎñ½Ó¿Úµ÷ÊÔ¼°¹ÜÀí,ʲôÑù·½Ê½¿ÉÒÔÈÃ΢·þÎñµÄ½Ó¿Ú¹ÜÀí±äµÃ¸ü¼ÓÈÝÒ×Щ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
|
|
µ¼¶Á
ÎÒÃÇÖªµÀÔÚ΢·þÎñ¼Ü¹¹Ï£¬Èí¼þϵͳ»á±»²ð·Ö³ÉºÜ¶à¸ö¶ÀÁ¢ÔËÐеķþÎñ£¬¶øÕâЩ·þÎñ¼äÐèÒª½»»¥Í¨ÐÅ£¬¾ÍÐèÒª¶¨Òå¸÷ÖÖ¸÷ÑùµÄ·þÎñ½Ó¿Ú¡£¾ßÌåÀ´Ëµ£¬ÔÚ»ùÓÚSpring
CloudµÄ΢·þÎñģʽÖУ¬¸÷¸ö΢·þÎñ»á»ùÓÚSpring MVCµÄController¶¨Òå¶à¸ö¸Ã΢·þÎñÐèÒªÏòÍⲿ·¢²¼µÄ½Ó¿Ú¡£
¸ù¾Ý¸÷¸ö΢·þÎñ¹¦Äܱ߽綨ÒåµÄ²»Í¬£¬ÓÐЩ΢·þÎñ»áÌṩÓë¾ßÌåÒµÎñÏà¹ØµÄ½Ó¿Ú£¬ÈçÖ§¸¶½Ó¿ÚÕË»§½Ó¿ÚµÈ£»¶øÓÐЩ΢·þÎñÔò»áÌṩһЩ¹«¹²ÐÔÖʵķþÎñ½Ó¿Ú£¬Èç¶ÌÐŽӿÚͳһÈÏÖ¤½Ó¿ÚÖ®Àà¡£¶øÕâЩ΢·þÎñÍùÍùÓÖÊÇÓɶà¸ö²»Í¬µÄÍŶÓÔÚ¿ª·¢Î¬»¤£¬´«Í³·½Ê½Ï·þÎñ½Ó¿ÚµÄ¶¨ÒåÍùÍùÐèÒª·þÎñÌṩ·½ÌṩÁ¼ºÃµÄ¿ÉÔĶÁÐԱȽϸߵĽӿÚÎĵµ²Å¿ÉÒԱȽϷ½±ãµØ¶Ô½ÓºÍ²âÊÔ£¬¶øÊÂʵÉÏ£¬Ëæ×Åʱ¼äµÄÍÆÒÆÈËÔ±µÄµü´ú¸üУ¬ºÜ¶àÇé¿öÏÂÕâЩÔçÆÚµÄ½Ó¿ÚÎĵµÍùÍùºÜ¿ì¾Í»áÒòΪÎÞÈËά»¤¶ø¹ýʱ£¬¼´±ã²»¹ýʱ£¬Î¢·þÎñģʽÏÂÕâÑùµÄ·½Ê½Ò²»áÒòΪ·þÎñ½Ó¿ÚÎĵµÌ«¶à¶øÈÿª·¢ÈËÔ±ÏÔµÃ×¥¿ñ£¡
ÄÇôÓÐûÓÐÒ»ÖÖ¸ü±ã½ÝµØ·½Ê½£¬¿ÉÒÔÈÿª·¢½Ó¿ÚµÄͬʱ£¬×Ô¶¯¾ÍÄÜÉú³ÉÓë·þÎñ½Ó¿Ú¸ß¶ÈÒ»ÖµÄÎĵµÀ´ÄØ£¿´ð°¸ÊÇÓе쬽ÓÏÂÀ´¾ÍºÍ´ó¼ÒÒ»ÆðÁÄÁĵ½µ×ÓÐʲôÑù·½Ê½¿ÉÒÔÈÃ΢·þÎñµÄ½Ó¿Ú¹ÜÀí±äµÃ¸ü¼ÓÈÝÒ×Щ£¡
½Ó¿Ú¹ÜÀí·½Ê½½éÉÜ
ÊÂʵÉÏ£¬ÊÐÃæÉÏÒѾÓжàÖÖ¿ªÔ´ÏîÄ¿ÌṩÁËÕâÑùµÄÖ§³Ö£¡È磺SwaggerApiDocRAPDOCLeverCrapApiµÈ£¬ÕâЩÏîÄ¿¶¼ÌṩÁ˶ÔÓÚApiÔÚÏßÎĵµµÄ¹ÜÀí¹¦ÄÜ£¬ÄÇôÔÚSpring
CloudÌåϵÖÐÄÄÒ»ÖÖ·½Ê½¸ü¼ÓÊʺÏÄØ£¿ÏÂÃæ£¬ÎÒÃÇÒ»ÆðÀ´¶Ô±ÈÏÂÕâЩÏîÄ¿µÄÓÅȱµã¡£
Swagger
SwaggerÊÇÒ»¿î»ùÓÚYAMLJSONÓïÑÔµÄÎĵµÔÚÏßÉú³ÉºÍ´úÂë×Ô¶¯Éú³ÉµÄ¹¤¾ß¡£ËüµÄÓŵãÈçÏ£º
1£©Ëü¿ÉÒÔÖ±½ÓǶÈëÔÚSpring BootÏîÄ¿ÖУ¬Í¨¹ý¿ª·¢Ê±±àдעÊÍ£¬´Ó¶ø×Ô¶¯Éú³É½Ó¿ÚÎĵµ£¬ÊµÏÖ´úÂëÓëÎĵµµÄ¸ß¶ÈÒ»Ö£»
2£©¿ÉÒÔ·ÖÎö½Ó¿ÚµÄ½á¹¹£¬²¢ÇÒ»¹¿ÉÒÔͨ¹ý·¢ÆðÇëÇóÀ´ÑéÖ¤½Ó¿ÚµÄÕýÈ·ÐÔ£»
3£©ËüÌṩÁ˶àÖÖ±à³ÌÓïÑÔµÄǰºó¶Ë·ÖÀë½â¾ö·½°¸£¬Ö§³Ö¸ù¾Ý¶¨ÒåµÄ½Ó¿Úµ¼³ö¸÷ÖÖÓïÑԵķþÎñ¶Ë»ò¿Í»§¶Ë´úÂë
£»
4£©Ëü»¹°üÀ¨ÁËSwagger Editor£¬ÕâÊÇʹÓÃyamlÓïÑÔµÄSwagger APIµÄ±à¼Æ÷£¬Ö§³Öµ¼³öyamlºÍjson¸ñʽµÄ½Ó¿ÚÎļþ£»
5£©°üº¬ÁËSwagger UI£¬Ëü¿ÉÒÔ½«Swagger Editor±à¼ºÃµÄ½Ó¿ÚÎĵµÒÔhtmlµÄÐÎʽչʾ³öÀ´£»
6£©Ãâ·Ñ¿ªÔ´£¬Ö§³Ö¹ú¼Ê»¯£¬Éú̬·á¸»ÉçÇø»îÔ¾£»
ËüµÄȱµãÊÇ£º
1£©¶Ô´úÂëÓÐÇÖÈëÐÔ£»
2£©²»Í¬ÏîÄ¿µÄSwagger½Ó¿ÚÎĵµÊÇ·ÖÀëµÄ£¬ÐèÒªµ½²»Í¬µÄµØ·½È¥ÕÒ£»
3£©Swagger UIÕ¹ÏÖ³öÀ´µÄ½Ó¿ÚÎĵµÈ±·¦·ÖÀ࣬ʹÓÃÌåÑé±È½Ï²î£»
4£©²»Í¬ÏîÄ¿µÄ½Ó¿ÚÎĵµÃ»ÓÐȨÏÞ¹ÜÀí£¬È±ÉÙMock£»
¹ÙÍøµØÖ·£ºhttps://swagger.io/
ApiDoc
ApiDocÊÇÒ»¿îÇáÁ¿¼¶µÄÀàËÆÓÚSwaggerµÄÔÚÏßÎĵµÉú³É¹¤¾ß¡£ÆäȱµãÒ²ÀàËÆÓÚSwagger£¬½Ó¿Ú¹ÜÀí×Ô¶¯²âÊԵȹ¦ÄÜÒ²±È½ÏÈõ£¬²¢ÇÒÆäÉçÇøÉú̬¹ú¼Ê»¯·½Ãæ¶¼»¹²»ÈçSwagger¡£
¹ÙÍøµØÖ·£ºhttp://apidocjs.com/
RAP
RAPÊÇÒ»¸ö¿ÉÊÓ»¯½Ó¿Ú¹ÜÀí¹¤¾ß£¬Ëü¿ÉÒÔͨ¹ý·ÖÎö½Ó¿Ú½á¹¹£¬¶¯Ì¬Éú³ÉÄ£ÄâÊý¾Ý£¬Ð£ÑéÕæÊµ½Ó¿ÚÕýÈ·ÐÔ£¬Î§Èƽӿڶ¨Ò壬ͨ¹ýһϵÁÐ×Ô¶¯»¯¹¤¾ßÌáÉý΢·þÎñģʽϵÄÐ×÷ЧÂÊ¡£
ËüµÄÓŵãÈçÏ£º
1£©Ö§³ÖÏîÄ¿¹ÜÀíÍŶӹÜÀíÎĵµ°æ±¾¹ÜÀí£»
2£©Ö§³ÖMock²âÊÔÊý¾Ý£»
3£©°¢Àï´ó³§³öÆ·£¬ÔÚ°¢Àï°Í°ÍÄÚ²¿µÃµ½Êµ¼ù£»
4£©Ö§³Ö½Ó¿Ú¼ìË÷£»
5£©¿ÉÒÔ·ÖÎö½Ó¿Ú½á¹¹£¬·¢ÆðÇëÇóУÑé½Ó¿ÚµÄÕýÈ·ÐÔ£»
6£©Ãâ·Ñ¿ªÔ´
ȱµãÈçÏ£º
1£©ÎĵµºÍ½Ó¿Ú·ÖÀ룬ºÜÈÝÒ׳öÏÖ²»Ò»ÖµÄÏÖÏó£»
2£©Ã¿¸ö½Ó¿Ú¶¼ÐèÒªÊÖ¹¤±à¼£»
3£©ºó¶Ë²ÉÓÃnodejs±àд£¬Óë»ùÓÚJavaµÄSpring Cloud¼¼ÊõÕ»²»Ò»Ö£»
¹ÙÍøµØÖ·£ºhttp://rapapi.org/org/index.do
DOCLever
DOCLeverÒ²ÊÇÒ»¸öÃâ·Ñ¿ªÔ´µÄ½Ó¿Ú¹ÜÀí¹¤¾ß£¬ËüµÄÓŵãÈçÏ£º
1£©Ö§³ÖÏîÄ¿¹ÜÀíÍŶӹÜÀíÎĵµ¹¤¾ß·á¸»£»
2£©Ö§³Ö·á¸»µÄMock²âÊÔÊý¾Ý£»
3£©Óû§°¸ÀýÒ²±È½Ï·á¸»£ºµÎµÎÃÀÍÅ58ͬ³Çͬ³ÇÂÃÓεȣ»
4£©Ö§³Ö½Ó¿Ú¼ìË÷£»
5£©¿ÉÒÔ·ÖÎö½Ó¿ÚµÄ½á¹¹·¢ÆðÇëÇóУÑé½Ó¿ÚÕýÈ·ÐÔ²ÎÊýÒ²ºÜ·á¸»£»
6£©Ö§³Ö¸´ÔÓ³¡¾°µÄ×Ô¶¯»¯²âÊÔ£¬±ÈÈç»ñÈ¡ÑéÖ¤ÂëµÇ½£¬»ñÈ¡¶©µ¥ÁÐ±í£¬ÉõÖÁ»ñȡij¸öÌØ¶¨¶©µ¥ÏêÇéµÈÉÏÏÂÎĹØÁªµÄ²Ù×÷£»
ȱµãÈçÏ£º
1£©ÎĵµºÍ½Ó¿Ú·ÖÀ룬ºÜÈÝÒ׳öÏÖ²»Ò»ÖµÄÏÖÏó£»
2£©Ã¿¸ö½Ó¿Ú¶¼ÐèÒªÊÖ¹¤±à¼£»
3£©ºó¶ËÒ²ÊDzÉÓÃnodejs±àд£¬ÓëSpring CloudµÄJava¼¼ÊõÕ»²»·û£»
¹ÙÍøµØÖ·£ºhttp://doclever.cn
CrapApi
ÓŵãÈçÏ£º
1£©Ö§³ÖÏîÄ¿¹ÜÀíÍŶӹÜÀíÎĵµ°æ±¾¹ÜÀí£»
2£©Ö§³ÖMock²âÊÔÊý¾Ý£»
3£©Ö§³Ö½Ó¿Ú¼ìË÷£»
4£©¿ÉÒÔ·ÖÎö½Ó¿Ú½á¹¹·¢ÆðÇëÇóУÑé½Ó¿ÚµÄÕýÈ·ÐÔ£»
5£©Ö§³Ö½Ó¿Ú¼à¿ØÉèÖñ¨¾¯¹æÔò£¬½Ó¿Ú²»¿ÉÓÃʱ¼°Ê±Í¨Öª·þÎñ¸ºÔðÈË£»
6£©ºó¶Ë»ùÓÚJava¿ª·¢£¬ÓëSpring Cloud¼¼ÊõÕ»JavaÆ¥Å䣻
7£©Ãâ·Ñ¿ªÔ´£»
ȱµã£º
1£©ÎĵµºÍ½Ó¿Ú·ÖÀ룬ºÜÈÝÒ׳öÏÖ²»Ò»ÖµÄÏÖÏó£»
2£©Ã¿¸ö½Ó¿Ú¶¼ÐèÒªÊÖ¹¤±à¼£»
3£©Ê¹Óð¸Àý½ÏÉÙ£¬¹¦Äܲ»¹»ÍêÉÆ£¬¿ÉÄÜ»áÓкܶà¿Ó£»
¹ÙÍøµØÖ·£ºhttp://api.crap.cn
Spring Cloud¼¯³ÉSwagger
ͨ¹ý¶ÔÉÏÊö¿ªÔ´ÏîÄ¿µÄ·ÖÎö£¬³ýSwaggerÍâÆäÓàÏîÄ¿²ÉÈ¡µÄ¶¼ÊÇÎĵµºÍ´úÂë·ÖÀëµÄ·½Ê½£¬ËäÈ»ÕâÑù»á¼õÉÙ¶Ô´úÂëµÄÇÖÈ룬µ«ÊÇÒ²»áÔì³ÉÎĵµºÍ´úÂëµÄ²»Ò»ÖÂÏÖÏó£¬ËùÒÔÔÚ»ùÓÚSpring
CloudµÄ΢·þÎñÏîÄ¿ÖУ¬ÎÒÃÇÑ¡ÔñSwagger×÷Ϊ΢·þÎñ½Ó¿Ú¹ÜÀí¹¤¾ß¡£
ÄÇô»ùÓÚSpring BootµÄSpring Cloud΢·þÎñ¸ÃÈçºÎ¼¯³ÉSwaggerÄØ£¿
1£©ÔÚSpring Boot΢·þÎñÏîÄ¿ÖÐÒýÈëMavenÒÀÀµ£º
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version> </dependency>
<dependency> <groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version> </dependency>
|
2£©´´½¨Swagger2ÅäÖÃÀࣺ
@Configuration
@EnableSwagger2
@Profile("!production")
public class SwaggerConfiguration {
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("Api")
.select()
.apis(withClassAnnotation(RestController.class))
.build()
.globalOperationParameters(commonParameters())
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Api")
.version("1.0.0-SNAPSHOT")
.build();
}
private List<Parameter> commonParameters()
{
List<Parameter> parameters = Lists.newArrayList();
parameters.add(new ParameterBuilder()
.name("war")
.description("backdoor ÔÚ²âÊÔ»·¾³Èƹý¼øÈ¨")
.modelRef(new ModelRef("string"))
.parameterType("query")
.required(false)
.defaultValue("war123")
.build());
parameters.add(new ParameterBuilder()
.name("uid")
.description("backdoor É趨µÄÓû§ID")
.modelRef(new ModelRef("string"))
.parameterType("query")
.required(false)
.defaultValue("1000053")
.build());
parameters.add(new ParameterBuilder()
.name("Authorization")
.description("Éú²ú»·¾³ÖУ¬ÐèÒª´«µÝµÄÓû§µ±Ç° Token")
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(false)
.defaultValue("Bearer XXXXX")
.build());
return parameters;
}
} |
ÒÔÉÏÅäÖÃÀàÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ý@Profile("!production")×¢½âÖ¸¶¨ÉúЧµÄ»·¾³£¬ÈçÕâÀïÎÒÃÇÉèÖóýÔÚÉú²ú»·¾³Í⣬ÆäËû»·¾³¶¼ÉúЧ¡£
3£©Ìí¼ÓÎĵµÄÚÈÝ
ÔÚÍê³ÉÉÏÊöÅäÖÃºó£¬ÆäʵÒѾ¿ÉÒÔÉú²úÎĵµÄÚÈÝÁË£¬µ«ÊÇÕâÑùµÄÎĵµÖ÷ÒªÕë¶ÔÇëÇó±¾Éí£¬ÃèÊöµÄÖ÷ÒªÀ´Ô´ÊǺ¯ÊýµÄÃüÃû£¬¶àÓû§²¢²»ÓѺã¬ÎªÁËÈÃÎĵµ¸ü¼ÓÒ×ÓÚÔĶÁºÍÀí½â£¬ÎÒÃÇ¿ÉÒÔͨ¹ýSwagger×¢½âÀ´Ôö¼ÓһЩ˵Ã÷¡£ÕâЩע½âÖ÷ÒªÓУº
@Api£ºÓÃÔÚÀàÉÏ£¬ËµÃ÷¸ÃÀàµÄ×÷Óá£
@ApiOperation£º×¢½âÀ´¸øAPIÔö¼Ó·½·¨ËµÃ÷¡£
@ApiImplicitParams : ÓÃÔÚ·½·¨Éϰüº¬Ò»×é²ÎÊý˵Ã÷¡£
@ApiImplicitParam£ºÓÃÀ´×¢½âÀ´¸ø·½·¨Èë²ÎÔö¼Ó˵Ã÷¡£
@ApiResponses£ºÓÃÓÚ±íʾһ×éÏìÓ¦¡£
@ApiResponse£ºÓÃÔÚ@ApiResponsesÖУ¬Ò»°ãÓÃÓÚ±í´ïÒ»¸ö´íÎóµÄÏìÓ¦ÐÅÏ¢¡£
@ApiModel£ºÃèÊöÒ»¸öModelµÄÐÅÏ¢£¨Ò»°ãÓÃÔÚÇëÇó²ÎÊýÎÞ·¨Ê¹ÓÃ@ApiImplicitParam×¢½â½øÐÐÃèÊöµÄʱºò£©¡£
½ÓÏÂÀ´£¬ÎÒÃÇͨ¹ýÒ»¸öʵ¼ÊµÄ΢·þÎñ½Ó¿Ú¶¨Òå°¸ÀýÀ´ÑÝʾÏ£º

@Api(value = "ÔËά¶ËϵͳÓû§²ãÍⲿ½Ó¿Ú",
description = "ÓÃÓÚ×é×°Ö±½ÓÃæÏòÔËάApp¶ËÏà¹Ø·þÎñ")
ÒÔÉÏÎÒÃÇÔÚ΢·þÎñ϶¨ÒåÁËÒ»¸öÓû§×¢²á½Ó¿Ú£¬´ËʱÆô¶¯Î¢·þÎñ£¬È»ºóÊäÈë΢·þÎñµÄIP+¶Ë¿Ú+/swagger-ui.html£¬¾Í¿ÉÒÔ¿´µ½Swagger-UIÁË£¬ÈçÏ£º

ͨ¹ýSwagger-UIÎÒÃǾͿÉÒÔУÑéµÄ·½Ê½²âÊÔ½Ó¿ÚÁË£¬Í¬Ê±ÒòΪ½Ó¿Ú×ֶζ¼ÔÚUIÓÐ˵Ã÷ºÍÔÝʱ£¬²¢ÇÒÊÇÓëʵ¼Ê´úÂëÍêȫһÖµģ¬ËùÒÔÔÚ¶Ô½Óʱ»ùÓÚÕâЩ½Ó¿Ú¶¨Òå½øÐжԽӾͿÉÒÔÁË£¡
|