1. مقدمة
هدف Swagger هو تحديد واجهة قياسية مستقلة عن اللغة لواجهة برمجة تطبيقات REST ، مما يسمح للمستخدمين باكتشاف وفهم وظائف خدمات الكمبيوتر دون الوصول إلى التعليمات البرمجية المصدر. عندما يتم تعريفها بشكل صحيح بواسطة Swagger ، يمكن للمستخدمين فهم والتفاعل مع الخدمات عن بُعد مع الحد الأدنى من منطق التنفيذ. على غرار الواجهة التي تصنعها البرمجة منخفضة المستوى.
2. خطوات التنفيذ
1. إضافة تبعيات Maven
<Rependency> <roupeD> io.springfox </groupId> <StifactId> springfox-swagger2 </artifactid> <sophy> 2.6.1 </version> </sependency>
2. فئة تكوين Swagger
@configuration @enlobeswagger2 // @componentscan (basePackageClasses = jgbjbaseinfocompanyapi.class) أو componentscan swaggerspringmvcplugin () {return docket new (documentationType.swagger_2) .Apiinfo (apiinfo ()) .Select () // اختيار المسارات و API ستقوم بإنشاء document .apis (requestHandlerSelectors.Any ()) } /** * معلومات محددة API * * regurn * /private apiinfo apiinfo apiinfo () {apiinfo apiinfo = new Apiinfo ("" Dooring Service Platform API "، // title" ، // description "1.0" ، // release "،" "،" "،" "،" ، "،" ، "،" ، "،" ،3. ملاحظات Swagger
ستقوم Swagger بمسح ملف الفئة مع تعليق توضيحي Swagger ضمن مسار الحزمة الذي تم تكوينه في SwaggerConfig ، وأخيراً إنشاء سلسلة من ملفات JSON الممسوحة ضوئيًا ...
وصف التعليقات التوضيحية Swagger: https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
api: تستخدم في فصل لتوضيح وظيفة الفصل. تجدر الإشارة إلى أن القيمة المستخدمة في الإصدارات القديمة تمثل اسم الفصل الذي تم إنشاؤه عن طريق المسح. بعد 1.5 ، يجب استخدام العلامة لتمثيل اسم الفصل.
api (tag = "UserController" ، Description = "API المتعلق بالمستخدم")
apiOperation: يستخدم في طرق لتوضيح وظيفة الأساليب
apiOperation (value = "find user" ، notes = "find user" ، httpmethod = "get" ، store =
MediaType.application_json_utf8_value)
apiParam: يستخدم في قائمة المعلمات للإشارة إلى معنى المعلمة
apiParam (value = "إنشاء أو تحديث الوقت الحالي (الشهر))
apiimplicitparams: تستخدم لتضمين مجموعة من أوصاف المعلمة على الطريقة
apiImplicitparam: يستخدم في apiImplicitparams التعليق التوضيحي ، يحدد جوانب مختلفة من معلمة الطلب
paramtype: أين تضع المعلمة
رأس> طلب الاستحواذ على المعلمة: requestheader
استعلام> طلب الاستحواذ على المعلمة: requestparam
المسار (للواجهة المريحة)> الحصول على معلمات الطلب: pathvariable
الجسم (غير شائع الاستخدام)
الشكل (غير شائع الاستخدام)
الاسم: اسم المعلمة
نوع البيانات: نوع المعلمة
مطلوب: ما إذا كان يجب تمرير المعلمة
القيمة: معنى المعلمة
DefaultValue: القيمة الافتراضية للمعلمة
apiimplicitparams ({
apiImplicitParam (name = "id" ، value = "ide ide" ، مطلوب = true ، datatype = "long" ، paramtype = "path") ،
})
apiResponses: تستخدم لتمثيل مجموعة من الردود
apiresponse: يستخدم في apiResponses ، يتم استخدامه بشكل عام للتعبير عن معلومات استجابة الخطأ
الرمز: الرقم ، على سبيل المثال 400
الرسالة: المعلومات ، مثل "معلمات الطلب التي لم يتم ملؤها"
الرد: الفصل الذي يلقي الاستثناء
apiresponses (القيمة = {
apiresponse (رمز = 400 ، رسالة = "لا يوجد اسم متوفر")
})
apimodel: يصف معلومات النموذج (يتم استخدام هذا عادةً عند إنشاء منشور ، باستخدام سيناريوهات REQUESTBODY ، ولا يمكن وصف معلمات الطلب باستخدام apiPlicitparam annotation)
apimodel (value = "فئة كيان المستخدم")
apimodelproperty: صف خصائص النموذج
apimodelProperty (value = "تسجيل الدخول إلى مستخدم")
3. Swagger-Ui
باستخدام معلومات التكوين أعلاه ، سيساعدنا Swagger على مسح جميع معلومات الفصل وإنشاء ملف JSON. لجعل ملفات JSON ودية للأشخاص ، تحتاج إلى استخدام مكون Swagger-UI:
1. تعليمات Swagger-Ui: https://swagger.io/docs/swagger-tools/
2. قم بتنزيل Swagger-Ui ، قم بإنشاء دليل Swagger جديد في دليل WebApp ، ووضع الملفات في Distory Directory في دليل Swagger ، وقم بتعديل ملف index.html. بشكل افتراضي ، تحتاج إلى الحصول على JSON من API من الاتصال http://petstore.swagger.io/v2/swagger.json. هنا تحتاج إلى تعديل قيمة عنوان URL إلى http: // {ip}: {port}/{projectName}/api-docs ، وتم ملء القيم الموجودة في {} وفقًا لموقفها.
على سبيل المثال ، قيمة عنوان URL الخاص بي هي:
http: // localhost: 8080/assers/api-docs. بالإضافة إلى ذلك ، تحتاج إلى تكوين إصدار موارد SPRING MVC: <MVC: Mapping = "/Swagger/**" location = "/swagger/"/>
نصائح: لا يوجد الكثير من الملفات في Distory الافتراضي. يمكن تخصيص Swagger-Ui. يستخدم هذا في مشروعنا. ليست هناك حاجة لتغيير اسم المشروع. تم الحصول على اسم المشروع ديناميكيًا: https://files.cnblogs.com/files/jmcui/swagger.zip
3. كيفية فرز الواجهات المعروضة:
Apissorter: تطبيق الفرز على قائمة API/TAG. يمكن أن يكون "alpha" (مرتبة بالاسم) أو وظيفة (انظر Array.Prototype.sort () لكيفية عمل وظائف الفرز). الافتراضي هو أن الطلب الذي تم إرجاعه بواسطة الخادم يبقى دون تغيير.
SPECTIONSSORTER: قم بتطبيق فرز على قائمة التشغيل لكل واجهة برمجة تطبيقات. يمكن أن يكون "ألفا" (مرتبة حسب الأبجدية الرقمية) أو "الطريقة" (مرتبة بواسطة طريقة HTTP) أو الدالة (انظر Array.prototype.sort () لمعرفة كيفية عمل وظائف الفرز). الافتراضي هو أن الطلب الذي تم إرجاعه بواسطة الخادم يبقى دون تغيير.
البرنامج التعليمي أعلاه (Share) لتكوين المكون الإضافي Swagger في SpringMVC هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.