Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Spring Cloud΢·þÎñ½Ó¿ÚÕâô¶àÔõôµ÷ÊÔ
 
  5381  次浏览      28
 2019-7-2
 
±à¼­ÍƼö:

±¾ÎÄÀ´×Ô³ÌÐòÔ³£¬±¾ÎÄÖ÷Òª½éÉÜÁË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ÓÐ˵Ã÷ºÍÔÝʱ£¬²¢ÇÒÊÇÓëʵ¼Ê´úÂëÍêȫһÖµģ¬ËùÒÔÔÚ¶Ô½Óʱ»ùÓÚÕâЩ½Ó¿Ú¶¨Òå½øÐжԽӾͿÉÒÔÁË£¡

 

   
5381 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù