স্প্রিংফক্স (সোয়াগার স্পেক ২.০, বর্তমান)
স্প্রিংফক্স সোয়াগার-স্প্রিংএমভিসি প্রতিস্থাপন করেছে এবং এখন সোয়াগার স্পেস 1.2 এবং 2.0 উভয় সমর্থন করে। বাস্তবায়ন ক্লাসগুলি পরিবর্তিত হয়েছে, কিছু গভীরতর কাস্টমাইজেশনের অনুমতি দেয় তবে কিছু কাজ করে। ডকুমেন্টেশন উন্নতি হয়েছে, কিন্তু এখনও কিছু কিছু বিবরণ উন্নত কনফিগারেশন জন্য যোগ হবে। 1.2 বাস্তবায়নের জন্য পুরানো উত্তরটি এখনও নীচে পাওয়া যাবে।
মাভেন নির্ভরতা
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
খালি-ন্যূনতম বাস্তবায়ন কম-বেশি দেখতে একই দেখাচ্ছে তবে এখন Docket
শ্রেণীর পরিবর্তে ক্লাস ব্যবহার করা হচ্ছে SwaggerSpringMvcPlugin
:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.regex("/api/.*"))
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("TITLE")
.description("DESCRIPTION")
.version("VERSION")
.termsOfServiceUrl("http://terms-of-services.url")
.license("LICENSE")
.licenseUrl("http://url-to-license.com")
.build();
}
}
আপনার সোয়াগার 2.0 এপিআই ডকুমেন্টেশন এখন পাওয়া যাবে http://myapp/v2/api-docs
।
দ্রষ্টব্য: আপনি যদি স্প্রিং বুট ব্যবহার না করেন তবে আপনার জ্যাকসন-ডাটাবাইন্ড নির্ভরতা যুক্ত করা উচিত। যেহেতু স্প্রিংফক্স ডেটাবাইন্ডিংয়ের জন্য জ্যাকসন ব্যবহার করে।
সোয়াগার ইউআই সমর্থন যুক্ত করা এখন আরও সহজ। আপনি যদি মাভেন ব্যবহার করছেন তবে সোয়াগার ইউআই ওয়েবজারের জন্য নিম্নলিখিত নির্ভরতা যুক্ত করুন:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
আপনি যদি স্প্রিং বুট ব্যবহার করছেন, তবে আপনার ওয়েব অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে প্রয়োজনীয় ফাইলগুলি বেছে নেবে এবং ইউআইটি প্রদর্শন করবে http://myapp/swagger-ui.html
(পূর্বে http://myapp/springfox
:)। আপনি যদি স্প্রিং বুট ব্যবহার না করে থাকেন, তবে ইউরি-টুমাখা নীচের উত্তরে যেমন উল্লেখ করেছেন, আপনাকে ফাইলগুলির জন্য একটি রিসোর্স হ্যান্ডলার নিবন্ধন করতে হবে। জাভা কনফিগারেশনটি এর মতো দেখাচ্ছে:
@Configuration
@EnableWebMvc
public class WebAppConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
নতুন স্ট্যাটিক ডকুমেন্টেশন জেনারেশন বৈশিষ্ট্যটিও বেশ সুন্দর দেখাচ্ছে যদিও আমি নিজে চেষ্টা করে দেখিনি।
সোয়াগার-স্প্রিংএমভিসি (সোয়াগার স্পেক 1.2, পুরানো)
সোয়াগার-স্প্রিংএমভিসির ডকুমেন্টেশনটি কিছুটা বিভ্রান্ত হতে পারে তবে এটি সেট আপ করা আসলে অবিশ্বাস্যরকম সহজ। সহজতম কনফিগারেশনের জন্য SpringSwaggerConfig
শিম তৈরি করা এবং টিকা-ভিত্তিক কনফিগারেশন সক্ষম করা প্রয়োজন (যা সম্ভবত আপনি আপনার স্প্রিং এমভিসি প্রকল্পে ইতিমধ্যে করেছেন):
<mvc:annotation-driven/>
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
তবে আমি মনে করি SwaggerSpringMvcPlugin
যে পূর্ববর্তী এক্সএমএল-সংজ্ঞায়িত শিমের পরিবর্তে কাস্টম সোয়াগার কনফিগারেশনটি সংজ্ঞায়িত করার অতিরিক্ত পদক্ষেপ নেওয়া ভাল worth
@Configuration
@EnableSwagger
@EnableWebMvc
public class SwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig;
@SuppressWarnings("SpringJavaAutowiringInspection")
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
this.springSwaggerConfig = springSwaggerConfig;
}
@Bean
public SwaggerSpringMvcPlugin customImplementation(){
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.apiInfo(apiInfo())
.includePatterns(".*api.*");
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("TITLE")
.description("DESCRIPTION")
.version("VERSION")
.termsOfServiceUrl("http://terms-of-services.url")
.license("LICENSE")
.licenseUrl("http://url-to-license.com")
.build();
}
}
আপনি যখন নিজের অ্যাপ্লিকেশনটি চালান, আপনার এখন এপিআই স্পেসটি তৈরি হওয়া উচিত http://myapp/api-docs
। অভিনব সোয়াগার ইউআই সেট আপ করার জন্য, আপনাকে গিটহাব প্রকল্প থেকে স্ট্যাটিক ফাইলগুলি ক্লোন করে আপনার প্রকল্পে রাখতে হবে। আপনার প্রকল্পটি স্থির এইচটিএমএল ফাইল পরিবেশন করার জন্য কনফিগার করা হয়েছে তা নিশ্চিত করুন:
<mvc:resources mapping="*.html" location="/" />
তারপরে index.html
সোয়াগার ইউআই dist
ডিরেক্টরি শীর্ষ স্তরের ফাইলটি সম্পাদনা করুন । ফাইলের শীর্ষে, আপনি কিছু জাভাস্ক্রিপ্ট দেখতে পাবেন যা api-docs
অন্য প্রকল্পের ইউআরএলকে বোঝায় । আপনার প্রকল্পের সোয়াগার ডকুমেন্টেশনের দিকে ইঙ্গিত করার জন্য এটি সম্পাদনা করুন:
if (url && url.length > 1) {
url = url[1];
} else {
url = "http://myapp/api-docs";
}
এখন আপনি যখন নেভিগেট করবেন http://myapp/path/to/swagger/index.html
, আপনার প্রকল্পের জন্য সোয়াগার ইউআই উদাহরণটি দেখতে পাওয়া উচিত।