সোয়াগার এপিআই ডকুমেন্টেশন থেকে পিডিএফ তৈরি করুন


96

আমি আমার আরআরএসটি ওয়েব পরিষেবাগুলি প্রদর্শন করতে সোয়াগার ইউআই ব্যবহার করেছি এবং এটি একটি সার্ভারে হোস্ট করেছি।

তবে সোয়াগারের এই পরিষেবাটি কেবলমাত্র একটি নির্দিষ্ট সার্ভারে অ্যাক্সেস করা যায়। আমি যদি অফলাইনে কাজ করতে চাই, তবে কেউ কীভাবে জানতে পারে যে আমি সোয়াগার ইউআই ব্যবহার করে একটি স্ট্যাটিক পিডিএফ তৈরি করব এবং এর সাথে কাজ করব? অতিরিক্ত হিসাবে একটি সার্ভারে অ্যাক্সেস নেই এমন লোকদের সাথে একটি পিডিএফ ভাগ করা সহজ।

অনেক ধন্যবাদ!

উত্তর:


41

সহজ উপায়: ব্রাউজার মুদ্রণ / পূর্বরূপ ব্যবহার করে

  1. সম্পাদক ফলকটি লুকান
  2. মুদ্রণ পূর্বরূপ (আমি ফায়ারফক্স ব্যবহার করেছি, অন্যরাও ভাল)
  3. এর পৃষ্ঠা সেটআপ পরিবর্তন করুন এবং পিডিএফ প্রিন্ট করুন

এখানে চিত্র বর্ণনা লিখুন


সরল! ডকুমেন্টেশন বেশ ভাল আসে।
শাটিন

4
দুটি স্ব্যাগার সার্ভিস থাকাকালীন আপনি দুটি ডকুমেন্টেশন ডিজাইনের মধ্যেও চয়ন করতে পারেন: Editor.swagger.io (নতুন) এবং edit2.swagger.io (পূর্ববর্তী)!
naXa

কার্যকর তবে ক্ষতিগ্রস্থ বিসিওএস সোয়াগার এইচটিএমএল ইউআইয়ের একাধিক ট্যাব রয়েছে, একটি পোষ্ট / পুট পদ্ধতির পরামিতিগুলির জন্য আপনাকে অবশ্যই মডেল ট্যাব এবং উদাহরণ মান ট্যাবের মধ্যে বেছে নিতে হবে, তারপরে মুদ্রিত থেকে পিডিএফ সংস্করণে
সেগুলির মধ্যে

4
এটি আমার পক্ষে কাজ করে না। প্রতিটি শেষ পয়েন্ট পৃষ্ঠার শেষের সাথে কেটে যাবে (আমি যে পৃষ্ঠার সেটআপটি ব্যবহার করি না কেন)। পরের পৃষ্ঠাটি পরবর্তী পরবর্তী পয়েন্ট ব্লকের শীর্ষে শুরু হবে। এই উত্তরটি লেখা হওয়ার পরে কিছু পরিবর্তন হয়েছে।
কিল্লা-বাইট

আমি এখনও এটি কার্যক্ষম দেখছি, আপনার মার্জিনটি খাপ খাইয়ে নিতে হতে পারে। Edit.swagger.io
55-

33

আমি https://github.com/springfox/springfox এবং https://github.com/RobWin/swagger2markup ব্যবহার করে একটি উপায় খুঁজে বের করেছি

ডকুমেন্টেশন প্রয়োগের জন্য সোয়াগার 2 ব্যবহার করা হয়েছে।


হাই, আমি সোয়াগার ব্যবহার করে অফলাইনে ডকুমেন্টেশনও তৈরি করার চেষ্টা করছি you আপনি কি সোয়াগার নথিপত্র তৈরি করতে সক্ষম ??
সুনীল আরকে

হ্যাঁ, আমি উদাহরণস্বরূপ প্রকল্পগুলি ব্যবহার করেছি এবং সেগুলিতে আমার ওয়েব সার্ভিস কোড সংহত করেছি এবং ডকুমেন্টেশন তৈরি করতে সক্ষম হয়েছি।
আমান মোহাম্মদ

4
আপনি কি দয়া করে সংক্ষেপে আমাকে বলতে পারেন, আমি কীভাবে আমার ওয়েব পরিষেবাকে উদাহরণের সাথে সংহত করতে পারি যা আপনি উপরে উল্লিখিত করেছেন।
সুনীল আরকে

Swagger2markup প্রকল্পের জন্য REST এপিআই-এর একটি JSON ইনপুট দরকার। আপনি যদি সেই গ্রেড প্রকল্পটি ডাউনলোড করেন এবং আপনার এপিআই এর বিশদ দিয়ে সেইটিতে swagger.json ফাইল পরিবর্তন করেন এবং তারপরে Swagger2MarkupConverterTest JUnit পদ্ধতি চালনা করেন: টেস্টসওয়াগার 2এইচটিএমএল রূপান্তর, আপনার প্রকল্পের ফোল্ডার বিল্ড / ডকস / জেনারেট / এসকিডোক এস্ট্রিংটিতে এইচটিএমএল তৈরি করা উচিত। সুতরাং অন্য কথায় 2 জিনিস আছে। 1) প্রথমে সোয়াগার সম্পাদক ব্যবহার করে আপনার REST এপিআই এর জন্য JSON ফর্ম্যাটটি তৈরি করুন। 2) সেই জেএসএন ফর্ম্যাটটি ব্যবহার করে, আপনি এপিআই
আমান মোহাম্মদ

22

আপনি আপনার আরএসটি প্রকল্পটি পরিবর্তন করতে পারেন, যাতে প্রকল্পটি নির্মাণের পরে প্রয়োজনীয় স্ট্যাটিক ডকুমেন্ট (এইচটিএমএল, পিডিএফ ইত্যাদি) উত্পাদন করতে পারেন।

আপনার যদি জাভা মাভেন প্রকল্প থাকে তবে আপনি নীচের পম স্নিপেট ব্যবহার করতে পারেন। এটি একটি পিডিএফ এবং এইচটিএমএল ডকুমেন্টেশন (প্রকল্পের আরএসটি সংস্থানসমূহের) উত্পন্ন করতে প্লাগইনগুলির একটি সিরিজ ব্যবহার করে।

  1. রেস্ট-এপিআই -> swagger.json: swagger-maven- প্লাগইন
  2. swagger.json -> Asciidoc: swagger2markup-maven-પ્લગઇન
  3. এসকিডোক -> পিডিএফ: এসিইডোক্টর-ম্যাভেন-প্লাগইন

একটি প্লাগইন আউটপুট যেহেতু মৃত্যুদন্ড কার্যকর করার আদেশটি পরবর্তী ক্ষেত্রে ইনপুট হয়ে উঠেছে তা দয়া করে সচেতন হন:

<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>

যুদ্ধের প্লাগইন উত্পন্ন ডকুমেন্টেশনের উপর কাজ করে - যেমন আপনাকে অবশ্যই নিশ্চিত করতে হবে যে সেই প্লাগইনগুলি পূর্বের পর্যায়ে কার্যকর করা হয়েছে।


হাই @ হার্ভিয়ান দুর্দান্ত উত্তর। আমি এখন পর্যন্ত আপনার anser ব্যবহার করতে পারে। আমার একই নামে দুটি ক্লাস রয়েছে তবে বিভিন্ন প্যাকেজে। তবে swagger.json এর মধ্যে কেবল একটির জন্য সংজ্ঞা রয়েছে। অন্যটি নিখোঁজ রয়েছে
এডমন্ড

@ হারভিয়ান আমি নিম্নলিখিতটি না করা পর্যন্ত ত্রুটি পেয়েছি 1) উপরের সামগ্রীগুলি সহ ফাইল এসসিআর / মেইন / এসসিডোক / সোয়াগার.এডোক তৈরি করা হয়েছে। 2) এই বৈশিষ্ট্যগুলিকে পিওএম-তে যুক্ত করা হয়েছে: <ফেজ.জেনারেট-ডকুমেন্টেশন> প্রসেস-ক্লাস </ ফেজ.জেনারেট- ডকুমেন্টেশন> <জেনারেট.অ্যাসিআইডোক.ডাইরেক্টরি> generated {প্রজেক্ট.বিল্ড.ডাইরেক্টরি ap / এপিআই-জেন </ উত্পন্ন। asciidoc.directory> তারপরে "এমভিএন ইনস্টল" চালান এবং আমি কোনও এমভিএন বা প্লাগইন ত্রুটি দেখতে পাই না তবে কেবল ওভারভিউ.এডোক ফাইলটিতে কোনও সামগ্রী রয়েছে; সংজ্ঞা.এডোক এবং পাথস.এডোক ফাইলগুলি ফাঁকা থাকে। প্লস পরামর্শ।
ক্রিসিনমটাউন

18

আমি একটি ওয়েবসাইট https://www.swdoc.org/ তৈরি করেছি যা বিশেষত সমস্যাটির সমাধান করে। সুতরাং এটি swagger.json -> Asciidoc, Asciidoc -> pdfউত্তর হিসাবে প্রস্তাবিত রূপান্তর স্বয়ংক্রিয়ভাবে । এর সুবিধা হ'ল আপনাকে ইনস্টলেশন প্রক্রিয়াটি অতিক্রম করতে হবে না। এটি ইউআরএল বা কেবল একটি কাঁচা জসন আকারে একটি নির্দিষ্ট নথি গ্রহণ করে। প্রকল্পটি সি # তে লিখিত এবং এর পৃষ্ঠাটি https://github.com/Irdis/SwDoc

সম্পাদনা

: এটা এখানে আপনার JSON চশমা যাচাই করতে একটি ভাল ধারণা হতে পারে http://editor.swagger.io/ যদি আপনি SwDoc সঙ্গে কোনো সমস্যা হচ্ছে কিনা মত পিডিএফ অসম্পূর্ণ তৈরি করা হচ্ছে।


4
থেক্স, হ্যাঁ এটি বেশ সুন্দর, আমি এটি আমার কাজের প্রকল্পগুলির জন্য ব্যবহার করি। আমি আমার অতিরিক্ত সময় ওপেনপিপি 3.0 সমর্থন করার জন্য কিছু কোড লেখার কথা ভাবছি।
ইর্ডিস

4
এটি যে সরঞ্জামগুলির উপর নির্ভর করে তার লেখকদের জন্য সমস্ত গৌরব, অফ
এরদিস

@ ইরদিস আমি লিঙ্কটি ব্যবহার করার চেষ্টা করেছি। এটি সোয়াগার ২.০ ডকটিকে পার্স করার অনুমতি দেয় তবে আমি যে দস্তাবেজটি সরবরাহ করছি তা ওপেন এপিআই 3.0.০ এর এবং এটি নথিটি উত্পন্ন করতে অক্ষম।
হেলোহাব

আমি সোয়াগার 3+ চেষ্টা করেছি - দুর্দান্ত কাজ করে, যদিও মন্তব্যে এটি কাঁচা এইচটিএমএল দেখায় ...
সাশা বন্ড

এটা খুব ভালো একটা যন্ত্র! আপনার যদি কখনও সমস্যা হয় (যেমন পিডিএফ অসম্পূর্ণভাবে উত্পন্ন হচ্ছে), আপনার জসনটি এখানে পেস্ট করুন: edit.swagger.io স্বয়ংক্রিয়ভাবে বৈধ হয়ে উঠতে সমস্যাগুলি সমাধান করুন এবং আপনি swdoc সরঞ্জামে ফিরে গিয়ে সঠিকভাবে উত্পন্ন করতে ভাল হবেন এইবার.
থ্যালস ভালিয়াস

9

চেকআউট https://mrin9.github.io/RapiPdf প্রচুর কাস্টমাইজেশন এবং স্থানীয়করণ বৈশিষ্ট্য সহ একটি কাস্টম উপাদান।

দাবি অস্বীকার: আমি এই প্যাকেজের লেখক


4
সবেমাত্র পরীক্ষা করা হয়েছে তবে পরীক্ষার ("পেটস্টোর) দিয়ে" পিডিএফ জেনারেট করুন "ক্লিক করার পরে আমি কোনও প্রতিক্রিয়া পাই না?
imehl

4
@ আইএমএইচএল যখন আমি আমাকে ম্যাক / ক্রোম, ম্যাক / ফায়ারফক্স, ম্যাক / সাফারি এবং উইন্ডোজ / ক্রোমে পরীক্ষা করে দেখি তখন এটি কার্যকর হয়। এটি কেবলমাত্র ওয়েব-ব্রাউজারে কাজ করে যা ক্রোম, ফায়ারফক্স এবং সাফারি এর মতো ওয়েব-উপাদানগুলিকে সমর্থন করে। এখনও যদি সমস্যার মুখোমুখি হন তবে দয়া করে এগুলি লগ ইন করুন গিথুব github.com/mrin9/RapiPdf
মৃন্ময়

@ মৃন্ময় আমার আইমহেলের মতো একই সমস্যা ছিল, এটি নতুন ট্যাব খুলেছে তবে এটি লক্ষ্যমাত্রায় বন্ধ হয়ে গেছে (উবুন্টু ১৮.০৪ + ফায়ারফক্স / ক্রোম উভয় ফলাফল)। তারপরে আমি এটি উইন্ডোতে করেছি এবং এটি কবজির মতো কাজ করেছে। এই সরঞ্জামটির জন্য আপনাকে ধন্যবাদ, এটি দুর্দান্ত।
ডাবাক্স

4
@ ডাবাক্স কখনই উবুন্টুতে পরীক্ষা করেননি, তবে একটি পরিস্থিতি আমি জানি যে লোকেরা যেখানে আপনার ব্যাখ্যা অনুসারে একই সমস্যার মুখোমুখি হয়েছিল এবং ব্রাউজারে যখন আপনার কোনও সক্রিয়-অবরুদ্ধকারী বা পপআপ ব্লকার থাকে
মৃন্ময়

@ মৃন্ময় আপনি ঠিক বলেছেন, আমার একটি বিজ্ঞাপন-ব্লকার চালু ছিল, এটি ওএসের কারণে নয়, কারণ হয়েছিল।
ডাবাক্স

1

আমার কাছে সবচেয়ে সহজ সমাধানটি ছিল পোস্টম্যানের মধ্যে সোয়াগার (v2) আমদানি করা এবং তারপরে ওয়েব ভিউতে যাওয়া। সেখানে আপনি "একক কলাম" দেখতে এবং পিডিএফ প্রিন্ট করতে ব্রাউজারটি ব্যবহার করতে পারেন। কোনও স্বয়ংক্রিয় / সংহত সমাধান নয় তবে একক-ব্যবহারের জন্য ভাল। এটি edit2.swagger.io থেকে মুদ্রণের চেয়ে কাগজের প্রস্থকে অনেক ভাল পরিচালনা করে, যেখানে স্ক্রোলবারগুলি সামগ্রীর অংশগুলিকে গোপন করে।


4
এটি ব্যবহার করার চেষ্টা করা হয়েছে তবে ওয়েবপৃষ্ঠার মাধ্যমে মুদ্রণটি বেশ কয়েকটি লিঙ্ক এবং অন্যান্য তথ্যও যুক্ত করে না।
হেলোহাব

হ্যাঁ, আমার এটি উল্লেখ করা উচিত ছিল। আমার ব্যবহারের জন্য কোনও সমস্যা ছিল না।
সাইমন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.