مايكرو الخدمات العمارة المواد الفعلية (B): الربيع boot2.0 التصور API + Swagger2

مقدمة موجزة

سوف يستخدم المشروع الربيع boot2.0 + Swagger2 تسهيل شكل اختبار راحة خلفية واجهة، والتحديث الحيوي، ونحن عندما تعديل واجهة في الخلفية، يمكن اختيال تحقيق التحديث التلقائي، من دون التفكير في الحفاظ على هذه الواجهة الاختبار.

  • مصدر عنوان
  • جيثب: الشبكي: //github.com/yundianzixun/spring-boot-starter-swagger2
  • عدد النقابات العامة: قتال التحالف IT
  • مجتمعنا: الشبكي: //100boot.cn

والأداة، ونرحب وندعم ستار، وأثناء واجهتك مشكلة، واقتراح العدد، وسأحاول لتحسين كاتب

النسخة الأساسية

  • التمهيد الربيع: 2.0.4
  • Swagger2: 2.7.0

خطوات

الخطوة الأولى: تحميل المشروع SpringBoot2.0
  • عنوان جيثب: الشبكي: //github.com/yundianzixun/spring-boot-starter
  • الوثيقة المرجعية: الشبكي: //www.jianshu.com/p/7dc2240f010e
الخطوة الثانية: إضافة مخضرم تعتمد   < التبعية > < groupId > io.springfox < / GroupId > < artifactId > springfox-swagger2 < / ArtifactId > < نص > 2.7.0 < / النسخة > < / التبعية > < التبعية > < groupId > io.springfox < / GroupId > < artifactId > springfox-غرور-واجهة المستخدم < / ArtifactId > < نص > 2.7.0 < / النسخة > < / التبعية > < التبعية > < groupId > org.apache.tomcat.embed < / GroupId > < artifactId > هر-تضمين-يشب < / ArtifactId > < / التبعية > < ! - ضرب من قبل مجموعة حرب - > < التبعية > < groupId > org.springframework.boot < / GroupId > < artifactId > ربيع التمهيد-بداية-هر < / ArtifactId > < مجال > المقدمة < / نطاق > < / التبعية > < التبعية > < groupId > org.springframework.boot < / GroupId > < artifactId > الربيع التمهيد بداية على شبكة الإنترنت < / ArtifactId > < / التبعية > الخطوة الثالثة: application.properties التكوين اختيال زيادة # تمكين خدمة اختيال swagger.enable = صحيح الخطوة الرابعة: استخدام شروح التكوين التبختر Configuration @ EnableSwagger2 الطبقة العامة Swagger2Config { ساكنة العام النهائي سلسلة BASE_PACKAGE = "com.itunion". value ( "$ {swagger.enable}") enableSwagger منطقية الخاص؛ Bean الجمهور دوكت createRestApi () { العودة المفكرة الجديدة (DocumentationType.SWAGGER_2) .apiInfo (apiInfo ()) // بيئة الإنتاج أكثر تأمين اختيال عندما مغلقة .مكن نوع (enableSwagger) // الطابع الزمني سيتم تحويلها بالكامل إلى نوع طويل .directModelSubstitute (Timestamp.class، Long.class) // سيتم تحويلها إلى نوع طويل التاريخ النوع جميع .directModelSubstitute (Date.class، Long.class) . تحديد () // حزمة واجهة طريق المسح الضوئي، لا ننسى لتغيير بهم .apis (RequestHandlerSelectors.basePackage (BASE_PACKAGE)) .paths (PathSelectors.any ()) . البناء ()؛ } الخاصة ApiInfo apiInfo () {العودة ApiInfoBuilder جديد () .title ( "التبختر مريحة واجهات برمجة التطبيقات") . الوصف ( "خدمة API التبختر") .termsOfServiceUrl ( " . الاتصال (جديد الاتصال ( "التبختر"، "127.0.0.1"، "zhenghhgz@163.com")) .version ( "1.0") . البناء ()؛ } }

تعليق

  • بعد أن تقفل بند الطبيعي قبالة اختيال، حتى هنا يضيف enableSwagger التكوين
  • يمكنك استخدام directModelSubstitute المتوقع أن القيام ببعض نوع التحويل
الخطوة الخامسة: إنشاء فئة كيان العضو المعلومات حول المستخدم فئة العمومي المعلومات حول المستخدم { ApiModelProperty ( "لا") معرف طويل الخاص؛ ApiModelProperty ( "اسم المستخدم") سلسلة اسم المستخدم الخاص؛ ApiModelProperty ( "اسم") سلسلة الاسم الأول الخاص؛ ApiModelProperty ( "اسم") سلسلة اسم العائلة الخاص؛ ApiModelProperty ( "صندوق البريد") البريد الإلكتروني سلسلة الخاص؛ ApiModelProperty لا تنتقل عن طريق (مخفي = الحقيقية) // كلمة المرور JsonIgnore كلمة سلسلة خاصة. ApiModelProperty ( "الدولة") انفراد صحيح userStatus. / ** هنا الحصول على حذفها، مجموعة ** / } الخطوة السادسة: كتابة صفحة من المراقب المالي Api (القيمة = "الوطن"، وصف = "الوطن") RequestMapping ( "/") RestController الطبقة العامة IndexController { ApiOperation (القيمة = "مرحبا ربيع التمهيد"، وتلاحظ = "التمهيد الربيع مرحبا") RequestMapping (القيمة = "/"، طريقة = RequestMethod.GET) مؤشر سلسلة العامة () { العودة "التمهيد الربيع مرحبا". } ApiOperation ( "صفحة API" قيمة = والملاحظات = "قائمة واجهة") RequestMapping (القيمة = "/ المعهد"، طريقة = RequestMethod.GET) المعهد باطلة العامة (HttpServletResponse الاستجابة) يلقي IOException { response.sendRedirect ( "اختيال-ui.html")؛ } }
  • لسهولة الوصول إلى الصفحة اختيال واجهة المستخدم، ونحن نفعل إعادة توجيه أكثر ملاءمة المعهد
الخطوة السابعة: كتابة الهبوط المراقب Api (القيمة = "المستخدم"، وصف = "المستخدم") RequestMapping ( "/ المعلومات حول المستخدم") RestController الطبقة العامة UserInfoController { ApiOperation (القيمة = "واجهة تسجيل الدخول - متعدد قيمتها من حيث القيمة"، وتلاحظ = "إدخال اسم المستخدم وكلمة السر") ApiResponses (القيمة = { ApiResponse (رمز = 200، رسالة = "OK"، ردا = UserInfo.class، responseContainer = "المعلومات حول المستخدم")، ApiResponse (رمز = 405، رسالة = "اسم الحساب أو كلمة المرور غير صحيحة") }) ApiImplicitParam (اسم = "الخريطة"، القيمة = "{\" اسم المستخدم \ ": \" JackMa \ "، \" كلمة السر \ ": \" 123 \ "}") RequestMapping (القيمة = "loginForMap"، طريقة = RequestMethod.POST، وتنتج = MediaType.APPLICATION_JSON_UTF8_VALUE) ResponseEntity < المعلومات حول المستخدم >  loginForMap (RequestBody خريطة < سلسلة، سلسلة >  الخريطة) { إذا (! map.get ( "اسم المستخدم"). equalsIgnoreCase ( "JackMa") ||! map.get ( "كلمة السر"). equalsIgnoreCase ( "123")) { عودة ResponseEntity.status (HttpStatus.METHOD_NOT_ALLOWED). البناء ()؛ } المعلومات حول المستخدم المستخدم = المعلومات حول المستخدم الجديد ()؛ user.setId (1L)؛ user.setUserName ( "JackMa")؛ user.setFirstName ( "MA")؛ user.setLastName ( "سحابة")؛ user.setEmail ( "zhenghhgz@163.com")؛ user.setUserStatus (1)؛ عودة ResponseEntity.ok (المستخدم)؛ } ApiOperation (القيمة = "واجهة تسجيل الدخول - اسطة نقل متعدد المستويات"، وتلاحظ = "إدخال اسم المستخدم وكلمة السر") ApiResponses (القيمة = { ApiResponse (رمز = 200، رسالة = "OK"، ردا = UserInfo.class، responseContainer = "المعلومات حول المستخدم")، ApiResponse (رمز = 405، رسالة = "اسم الحساب أو كلمة المرور غير صحيحة") }) ApiImplicitParams ({ ApiImplicitParam (اسم = "اسم المستخدم"، القيمة = "اسم المستخدم"، المطلوبة = صحيح، نوع البيانات = "السلسلة"، paramType = "الاستعلام")، ApiImplicitParam (اسم = "كلمة المرور"، القيمة = "كلمة المرور"، المطلوبة = صحيح، نوع البيانات = "السلسلة"، paramType = "الاستعلام")، }) RequestMapping (القيمة = "loginForParams"، طريقة = RequestMethod.POST، وتنتج = MediaType.APPLICATION_JSON_UTF8_VALUE) ResponseEntity < المعلومات حول المستخدم >  loginForMap (RequestParam سلسلة باسم المستخدم، كلمة المرورRequestParam سلسلة) { إذا (! userName.equalsIgnoreCase ( "JackMa") ||! passWord.equalsIgnoreCase ( "123")) { عودة ResponseEntity.status (HttpStatus.METHOD_NOT_ALLOWED). البناء ()؛ } المعلومات حول المستخدم المستخدم = المعلومات حول المستخدم الجديد ()؛ user.setId (1L)؛ user.setUserName ( "JackMa")؛ user.setFirstName ( "MA")؛ user.setLastName ( "سحابة")؛ user.setEmail ( "jackma@163.com")؛ user.setUserStatus (1)؛ عودة ResponseEntity.ok (المستخدم)؛ } }

تعليق

  • بارامس وأدركت باستخدام اثنين مختلفة نقل البيانات بارام
  • أوصينا الربيع نوع من ResponseEntity النتائج عودة توحيد
  • اختيال جيدة الى حد ما رمز الاستجابة الدعم، يمكننا وضع رمز الاستثناء التي قد تنشأ يتم تعيين كافة من أجل تسهيل الوقت لرسو السفن من معالجة الاستثناء
خطوة ثمانية: بدء تشغيل

تعليق

  • رقم المنفذ له تكوينه الخاص يأخذ

كما هو مبين أدناه:

swagger2.jpg خطوة 9: إعدام

أدخل .JPG

الناتج .JPG

المساهمون

  • التحالف IT سطر القتالية
  • التحالف IT القتالية - قهوة
أكثر من التركيز على المحتوى مثيرة "IT تحالف مكافحة" يا ~ ~ ~

Hengda مدرب شو الهند إلى المنزل لزيارة الأقارب، للتبرع 650 مليون لصالح الأعمال الخيرية

دوري ابطال اوروبا - دي بالا تقاليد التعاون يوينغ 4-3 يسوع كسر الثمانية مانشستر خفض مجموع النقاط 5-2

جائزة تشنجيانغ لو شو تشاو مقابلة الترجمة: "دون كيشوت" هناك المئات من الترجمة الصينية و "حلم القصور الحمراء" لقد كان فقط النسخة الاسبانية

سوف العملة التشفير لا تسبب "مخاطر كبيرة"، ولكن سوف تستهل في تصفية وحشية

تعبت من مشاهدة مشروع الوجبات الجاهزة؟ رحيل FCE من الصدقة، وتوزيع الطرود الغذائية الجاهزة للأسر المحتاجة

مايكرو إلكتروني صغير الأهتزاز القتالية - دعم للهواتف النقالة الصغيرة لتشغيل الفيديو

جائزة لو مقابلة الترجمة مع البروفيسور شو تشاو تشنجيانغ الشمالية: على "القيام الشعر لا يكتب،" قضى الشاعر أربع سنوات ترجمة "حلم القصور الحمراء" مع الاسبانية

الدوري الاسباني: اشبيلية Zhanla جيرونا، بيتيس انتصار كانت الغواصة الصفراء مسطحة تماما

العمارة المواد الفعلية (الرابع عشر): الربيع التمهيد قتالية متعددة ذاكرة التخزين المؤقت (مع شفرة المصدر جيثب)

معظم العديد من الأسواق المميزة في العالم

19 دولة ومنطقة وشارك 2018 رياضي في البداية بانتشيهوا ماراثون الزورق

وفئة المعلمين للطلاب محام لل"رقم الطلب"، أصدر 50 عدد أسبوعي واحد "وصفة طبية"