আপনি আপনার আরএসটি প্রকল্পটি পরিবর্তন করতে পারেন, যাতে প্রকল্পটি নির্মাণের পরে প্রয়োজনীয় স্ট্যাটিক ডকুমেন্ট (এইচটিএমএল, পিডিএফ ইত্যাদি) উত্পাদন করতে পারেন।
আপনার যদি জাভা মাভেন প্রকল্প থাকে তবে আপনি নীচের পম স্নিপেট ব্যবহার করতে পারেন। এটি একটি পিডিএফ এবং এইচটিএমএল ডকুমেন্টেশন (প্রকল্পের আরএসটি সংস্থানসমূহের) উত্পন্ন করতে প্লাগইনগুলির একটি সিরিজ ব্যবহার করে।
- রেস্ট-এপিআই -> swagger.json: swagger-maven- প্লাগইন
- swagger.json -> Asciidoc: swagger2markup-maven-પ્લગઇન
- এসকিডোক -> পিডিএফ: এসিইডোক্টর-ম্যাভেন-প্লাগইন
একটি প্লাগইন আউটপুট যেহেতু মৃত্যুদন্ড কার্যকর করার আদেশটি পরবর্তী ক্ষেত্রে ইনপুট হয়ে উঠেছে তা দয়া করে সচেতন হন:
<plugin>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>3.1.3</version>
<configuration>
<apiSources>
<apiSource>
<springmvc>false</springmvc>
<locations>some.package</locations>
<basePath>/api</basePath>
<info>
<title>Put your REST service's name here</title>
<description>Add some description</description>
<version>v1</version>
</info>
<swaggerDirectory>${project.build.directory}/api</swaggerDirectory>
<attachSwaggerArtifact>true</attachSwaggerArtifact>
</apiSource>
</apiSources>
</configuration>
<executions>
<execution>
<phase>${phase.generate-documentation}</phase>
<!-- fx process-classes phase -->
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.github.robwin</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>0.9.3</version>
<configuration>
<inputDirectory>${project.build.directory}/api</inputDirectory>
<outputDirectory>${generated.asciidoc.directory}</outputDirectory>
<!-- specify location to place asciidoc files -->
<markupLanguage>asciidoc</markupLanguage>
</configuration>
<executions>
<execution>
<phase>${phase.generate-documentation}</phase>
<goals>
<goal>process-swagger</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.3</version>
<dependencies>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-pdf</artifactId>
<version>1.5.0-alpha.11</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>1.7.21</version>
</dependency>
</dependencies>
<configuration>
<sourceDirectory>${asciidoctor.input.directory}</sourceDirectory>
<!-- You will need to create an .adoc file. This is the input to this plugin -->
<sourceDocumentName>swagger.adoc</sourceDocumentName>
<attributes>
<doctype>book</doctype>
<toc>left</toc>
<toclevels>2</toclevels>
<generated>${generated.asciidoc.directory}</generated>
<!-- this path is referenced in swagger.adoc file. The given file will simply
point to the previously create adoc files/assemble them. -->
</attributes>
</configuration>
<executions>
<execution>
<id>asciidoc-to-html</id>
<phase>${phase.generate-documentation}</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html5</backend>
<outputDirectory>${generated.html.directory}</outputDirectory>
<!-- specify location to place html file -->
</configuration>
</execution>
<execution>
<id>asciidoc-to-pdf</id>
<phase>${phase.generate-documentation}</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>pdf</backend>
<outputDirectory>${generated.pdf.directory}</outputDirectory>
<!-- specify location to place pdf file -->
</configuration>
</execution>
</executions>
</plugin>
এসিইডোক্টর প্লাগইন কাজ করার জন্য একটি .adoc ফাইলের অস্তিত্ব ধরে নেয়। আপনি এমন একটি তৈরি করতে পারেন যা সোয়াগার 2মার্কআপ প্লাগইন দ্বারা তৈরি করা সহজভাবে সংগ্রহ করে:
include::{generated}/overview.adoc[]
include::{generated}/paths.adoc[]
include::{generated}/definitions.adoc[]
যদি আপনি চান যে আপনার উত্পন্ন এইচটিএমএল ডকুমেন্টটি আপনার যুদ্ধের ফাইলের অংশ হয়ে উঠতে পারে তবে আপনাকে নিশ্চিত করতে হবে যে এটি শীর্ষ স্তরে উপস্থিত রয়েছে - ডাব্লুইউ-আইএনএফ ফোল্ডারে স্থির ফাইলগুলি পরিবেশন করা হবে না। আপনি maven- যুদ্ধ-প্লাগইন এ এটি করতে পারেন:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
<webResources>
<resource>
<directory>${generated.html.directory}</directory>
<!-- Add swagger.pdf to WAR file, so as to make it available as static content. -->
</resource>
<resource>
<directory>${generated.pdf.directory}</directory>
<!-- Add swagger.html to WAR file, so as to make it available as static content. -->
</resource>
</webResources>
</configuration>
</plugin>
যুদ্ধের প্লাগইন উত্পন্ন ডকুমেন্টেশনের উপর কাজ করে - যেমন আপনাকে অবশ্যই নিশ্চিত করতে হবে যে সেই প্লাগইনগুলি পূর্বের পর্যায়ে কার্যকর করা হয়েছে।