Swaggerをすばやく作成し、ロジックコードをカスタマイズするにはどうすればよいですか?

Swaggerは、Swagger1とSwagger2の2つのバージョンに分かれています。

Swagger2にはspring4が必要です。多くの企業プロジェクトがspring4にアップグレードされていないため、次のプロジェクトではSwagger1を採用しています。


インターネットで検索した文書はほぼ同じで、句読点も同じで、間違った場所も同じです。誰もが個人的に実験したとは思いませんが、とにかく、さまざまなエラーを実験して報告しました。

Swagger1にはバックエンドインターフェースと一致しないUIバージョンがたくさんあります。よく検索して、ほぼ適切なバージョンを見つけて、自分でソースコードを変更しました。


1.pomに参加する

<dependency>
     < groupId > com.mangofactory </ groupId >
     <artifactId> swagger-springmvc </ artifactId>
     <version> 1.0.2 </ version>
 </ dependency>
 <dependency>
     < groupId > com.fasterxml.jackson.core </ groupId>
     <artifactId> jackson-アノテーション</ artifactId>
     <version> 2.4.4 </ version>
 </ dependency>
 <dependency>
     < groupId > com.fasterxml.jackson.core </ groupId >
     <artifactId> jackson- databind <
/ artifactId>     <バージョン> 2.4.4 </バージョン>
</ dependency>
 <dependency>
     < groupId > com.fasterxml.jackson.core </ groupId >
     <artifactId> jackson-core </ artifactId>
     <version> 2.4.4 </ version>
 </ dependency>

2.swaggerconfig。独自の情報の一部を構成すると、APIホームページに表示されます

インターネットで言及されているspring.xmlほど多くのコンテンツを構成する必要はなく、何も構成しないでください。コントローラクラスにまとめる

package com.fastcloud.web.front;

import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@EnableWebMvc
@EnableSwagger
public class SwaggerConfig {

    private SpringSwaggerConfig springSwaggerConfig;

    /**
     * Required to autowire SwaggerConfig
     */
    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
    {
        this.springSwaggerConfig = springSwaggerConfig;
    }

    /**
     * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
     * framework - allowing for multiple swagger groups i.e. same code base
     * multiple swagger resource listings.
     */
    @Bean
    public SwaggerSpringMvcPlugin customImplementation()
    {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(".*?");
    }

    private ApiInfo apiInfo()
    {
        ApiInfo apiInfo = new ApiInfo(
                "TP",
                "TP的H5接口",
                "http://127.0.0.1:8080",
                "My Apps API Contact Email",
                "My Apps API Licence Type",
                "My Apps API License URL");
        return apiInfo;
    }
}

3.htmlをコピーします

https://pan.baidu.com/s/1jI9NKX4

BaiduCloudのapi.zipをwebappディレクトリに解凍します。

この時点で、バックエンドインターフェイスは終了しています。表示を改善するためにhtmlがコピーされており、jsonを直接見るかどうかは関係ありません。バックエンドのインターフェース名は/ api-docsです。


(1)トータルインターフェースリストのアクセスアドレスを変更する

プロジェクトのapi / index.htmlを開きます。現れる

url: "/mdhy/api-docs"
mdhyを独自のプロジェクトアクセス名http://127.0.0.1/ {プロジェクト名} / api-docsに変更します

プロジェクト名がない場合は削除してください。

これは、ajaxhttp://127.0.0.1/api-docsにアクセスできることを意味します

(2)オンラインテストのリクエストパスを変更する

搜索api/lib/swagger.js里的“SwaggerOperation.prototype.urlify”,将this.resource.basePath的值配置成你的访问根目录,这里是在线测试点击try it out 时候访问的。f12监控下看看


4、修改后端路径


引入swagger的jar包含一个路径的controller。这里会生成一个根目录下的访问接口  /api-docs

如果你的项目都是*.action的,*.do的,那么访问就是/api-docs.action,/api-docs.do。

但是swagger ui访问的接口都是无后缀的,总不能把所有的js都修改了。所以如果你的项目有,比如*.do,那么修改成无后缀的。如果改成无后缀就得处理静态文件的问题。

web.xml里边设置

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping> 
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
</servlet-mapping> 
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.gif</url-pattern>
</servlet-mapping> 
	<!-- spring mvc -->
	<servlet>
		<servlet-name>mdhy</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>3</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>mdhy</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>


5、随便找一个controller了,添加注释的参数

具体我就不说了,这块基本没问题


5、打开浏览器

访问即可http://127.0.0.1:8910/{项目名}/api/index.html

我的是

http://127.0.0.1:8910/mdhy/api/index.html

看到红圈地方,这里是数组的,我做了改进,支持数组的对象显示





おすすめ

転載: blog.csdn.net/penkee/article/details/70650973