العمارة المواد الفعلية (اثنين) -Spring التمهيد التكامل التبختر، والسماح API التصور الخاص

أنت لا تزال تنفق الكثير من الوقت مع بعقب على الواجهة الأمامية دون تأثير؟

أنت لا تزال إرسال الوثائق واجهة والمتاعب؟

اليوم، ونحن نعلم واجهة لرسو السفن قطعة أثرية التبختر

التبختر يمكن أن تساعدنا على عرض بسرعة التعاريف واجهة واجهة سريعة المكالمات اختبار

دعونا نلقي نظرة على هذه الألوان الحقيقية القطع الأثرية

ما لم يتم العثور على واجهة في لمحة؟

مشروع دعونا متكاملة على Swagger2 ذلك

افتراضي نحن بحاجة الى بعض من هذه الأمور: Jdk1.6 +، مخضرم

بنية الدليل الكامل على النحو المبين أدناه

بنية الدليل

زيادة الاعتماد مخضرم

< ؟ نسخة أكس = "1.0" ترميز = "UTF-8"؟ > < XMLNS مشروع = "

 XMLNS: XSI = "

 XSI: schemaLocation = " >

  < modelVersion > 4.0.0 < / ModelVersion >

  < groupId > com.example < / GroupId >

  < artifactId > الربيع التمهيد اختيال < / ArtifactId >

  < نص > 1.0 لقطة < / النسخة >

  < أصل >

  < groupId > org.springframework.boot < / GroupId >

  < artifactId > الربيع التمهيد بداية الوالدين < / ArtifactId >

  < نص > 1.5.1.RELEASE < / النسخة >

  < / الرئيسي >

  < تبعيات >

  < التبعية >

  < groupId > org.springframework.boot < / GroupId >

  < artifactId > الربيع التمهيد بداية على شبكة الإنترنت < / ArtifactId >

  < / التبعية >

  < التبعية >

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

  < مجال > المقدمة < / نطاق >

  < / التبعية >

  < / التبعيات >

  < التعبئة والتغليف > حرب < / تغليف >

< ! - - >

  < خصائص >

  < java.version > 1.8 < /java.version >

  < / خصائص >

  < بناء >

< ! - ضرب من قبل مجموعة حرب - >

  < finalName > اختيال < / FinalName >

  < الإضافات >

  < المساعد >

  < groupId > org.springframework.boot < / GroupId >

  < artifactId > مخضرم ربيع-التمهيد-المساعد < / ArtifactId >

  < / المساعد >

< ! - ضرب من قبل مجموعة حرب، مخضرم مخضرم لا تحتاج إلى معرفة متى تعبئتها web.xml، سواء فقط لا يمكن العثور سيتم الإبلاغ عن خطأ web.xml - >

  < المساعد >

  < groupId > org.apache.maven.plugins < / GroupId >

  < artifactId > مخضرم الحرب بين البرنامج المساعد < / ArtifactId >

  < نص > 2.1.1. < / النسخة >

  < ترتيب >

  < failOnMissingWebXml > زائف < / FailOnMissingWebXml >

  < / تكوين >

  < / المساعد >

< ! - - >

  < / الإضافات >

  < / بناء > < / مشروع >

springfox-swagger2 هو جوهر الرئيسي، springfox-غرور-واجهة المستخدم هو الموقع الرسمي لتوفير واجهة UI حرة

زيادة إدخال التمهيد الربيع

حزمة com.example.

استيراد org.springframework.boot.SpringApplication.

استيراد org.springframework.boot.autoconfigure.SpringBootApplication،SpringBootApplication

publicclassApplication {

publicstaticvoidmain (سلسلة وسائط) {

 SpringApplication.run (Application.class، وسائط)؛

 }

}

`` `خصائص

server.port = 8081

server.context مسار = / اختيال

swagger.enable = صحيح

التكوين التبختر استخدام التعليقات

حزمة com.example.configuration.

استيراد org.springframework.beans.factory.annotation.Value.

استيراد org.springframework.context.annotation.Bean.

استيراد org.springframework.context.annotation.Configuration.

استيراد springfox.documentation.builders.ApiInfoBuilder.

springfox.documentation.builders.PathSelectors الاستيراد؛

springfox.documentation.builders.RequestHandlerSelectors الاستيراد؛

استيراد springfox.documentation.service.ApiInfo.

استيراد springfox.documentation.service.Contact.

استيراد springfox.documentation.spi.DocumentationType.

استيراد springfox.documentation.spring.web.plugins.Docket.

استيراد springfox.documentation.swagger2.annotations.EnableSwagger2.

استيراد java.sql.Timestamp.

استيراد java.util.Date.

@ تكوين @ EnableSwagger2

publicclassSwagger2Config {

publicstaticfinal سلسلة BASE_PACKAGE = "com.example".

value ( "$ {swagger.enable}")

enableSwagger privateboolean.

Bean

الجمهور دوكت createRestApi () {

returnnew دوكت (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 returnnew ()

 .title ( "التبختر مريحة واجهات برمجة التطبيقات")

 . الوصف ( "خدمة API التبختر")

 .termsOfServiceUrl ( "

 . الاتصال (جديد الاتصال ( "التبختر"، "127.0.0.1"، "qiaohhgz@163.com"))

 .version ( "1.0")

 . البناء ()؛

 }

}

  • بعد أن تقفل بند الطبيعي قبالة اختيال، حتى هنا يضيف enableSwagger التكوين

  • يمكنك استخدام directModelSubstitute المتوقع أن القيام ببعض نوع التحويل

كائنات جافا إضافة إلى اثنين من انتقال

حزمة com.example.model.

استيراد com.fasterxml.jackson.annotation.JsonIgnore.

استيراد io.swagger.annotations.ApiModel.

استيراد io.swagger.annotations.ApiModelProperty،ApiModel ( "المستخدم")

publicclassUser {

ApiModelProperty ( "لا")

معرف طويل الخاص؛

ApiModelProperty ( "اسم المستخدم")

اسم المستخدم سلسلة الخاص؛

ApiModelProperty ( "اسم")

سلسلة الاسم الأول الخاص؛

ApiModelProperty ( "اسم")

سلسلة اسم العائلة الخاص؛

ApiModelProperty ( "صندوق البريد")

البريد الإلكتروني سلسلة الخاص؛

ApiModelProperty لا تنتقل عن طريق (مخفي = الحقيقية) // كلمة المرور

 JsonIgnore

كلمة سلسلة خاصة.

ApiModelProperty ( "الدولة")

انفراد صحيح userStatus.

تم حذف // الحصول على مجموعة}

  • ApiModelProperty القيمة المحددة فقط عندما لا يمكنك كتابة القيمة من value = ""

  • قضينا كلمة JsonIgnore ومخفية = الإعداد صحيح، لا نريد كلمة المرور إلى أن تنتقل إلى الجبهة

حزمة com.example.model.

استيراد io.swagger.annotations.ApiModelProperty.

publicclassUserForm {

ApiModelProperty (القيمة = "اسم المستخدم"، المطلوبة = صحيح، مثلا = "المسؤول") اسم المستخدم سلسلة الخاص؛

تم حذف // الحصول على مجموعة}؛ApiModelProperty (القيمة = "كلمة المرور"، المطلوبة = صحيح، مثلا = "000000") كلمة المرور سلسلة خاصة

  • استخدام سبيل المثال قد توفر بعض محتوى الاختبار، اختبار مناسب

كتابة صفحة من المراقب المالي

حزمة com.example.controller.

استيراد io.swagger.annotations.Api.

استيراد io.swagger.annotations.ApiOperation.

استيراد org.springframework.web.bind.annotation.RequestMapping.

استيراد org.springframework.web.bind.annotation.RequestMethod.

استيراد org.springframework.web.bind.annotation.RestController.

استيراد javax.servlet.http.HttpServletResponse.

استيراد java.io.IOException.

Api (القيمة = "الوطن"، وصف = "الوطن")

RequestMapping ( "/") @ RestController

publicclassIndexController {

ApiOperation (القيمة = "مرحبا ربيع التمهيد"، وتلاحظ = "مرحبا ربيع التمهيد")RequestMapping (القيمة = "/"، طريقة = RequestMethod.GET)

مؤشر سلسلة العامة () {

العودة "التمهيد الربيع مرحبا".

 }

ApiOperation ( "صفحة API" قيمة = والملاحظات = "قائمة واجهة")

 RequestMapping (القيمة = "/ المعهد"، طريقة = RequestMethod.GET)

publicvoidapi (HttpServletResponse الاستجابة) يلقي IOException {

 response.sendRedirect ( "اختيال-ui.html")؛

 }

}

  • لسهولة الوصول إلى الصفحة اختيال واجهة المستخدم، ونحن نفعل إعادة توجيه أكثر ملاءمة المعهد

واحد بسيط تسجيل الدخول أكثر شيوعا وحدة تحكم

حزمة com.example.controller.

استيراد com.example.model.User.

استيراد com.example.model.UserForm.

استيراد io.swagger.annotations.Api.

استيراد io.swagger.annotations.ApiOperation.

استيراد io.swagger.annotations.ApiResponse.

io.swagger.annotations.ApiResponses الاستيراد؛

استيراد org.springframework.http.HttpStatus.

استيراد org.springframework.http.ResponseEntity.

استيراد org.springframework.web.bind.annotation.RequestBody.

استيراد org.springframework.web.bind.annotation.RequestMapping.

استيراد org.springframework.web.bind.annotation.RequestMethod.

استيراد org.springframework.web.bind.annotation.RestController.

Api (القيمة = "المستخدم"، وصف = "المستخدم")

RequestMapping ( "المستخدم /")

RestController

publicclassUserController {

ApiOperation (القيمة = "تسجيل الدخول"، وتلاحظ = "إدخال اسم المستخدم وكلمة السر")

ApiResponses (القيمة = {

ApiResponse (رمز = 200، رسالة = "OK"، ردا = User.class، responseContainer = "المستخدم")،

ApiResponse (رمز = 405، رسالة = "اسم الحساب أو كلمة المرور غير صحيحة")

 })

RequestMapping (القيمة = "/ تسجيل الدخول"، وتنتج = { "التطبيق / سلمان"}، طريقة = RequestMethod.POST)

ResponseEntity < المستخدم >  تسجيل الدخول (RequestBody UserForm النموذج) {

إذا (! form.getPassword (). equalsIgnoreCase ( "000000")) {

عودة ResponseEntity.status (HttpStatus.METHOD_NOT_ALLOWED). البناء ()؛

 }

 المستخدم المستخدم = مستخدم جديد ()؛

 user.setId (1L)؛

 user.setUsername (form.getUsername ())؛

 user.setFirstName ( "صغيرة")؛

 user.setLastName ( "الخروج")؛

 user.setEmail ( "xiaoming@mail.com")؛

 user.setUserStatus (1)؛ العودة ResponseEntity.ok (المستخدم)؛

 }

}

  • أوصينا الربيع نوع من ResponseEntity النتائج عودة توحيد

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

بدء تشغيل الخادم، افتح متصفح للوصول إلى شريط المقبل

HTTP: // المضيف المحلي: 8081 / غرور / المعهد

تعليمات

انقر فوق لعرض واجهات

انقر على عرض نموذج للعودة محتويات بنية البيانات

حالة مثال اضغط لعرض البيانات

انقر نموذج طلب عرض بنية بيانات

انقر فوق حالة يمكن المسارعة لتشكيل المحتوى المطلوب

عرض ووصف رمز استثناء

انقر جربه! التنفيذ وعرض النتائج

الامر بهذه البساطة! أنت تعلم ذلك؟

محتوى أكثر إثارة يرجى الانتباه إلى "IT تحالف مكافحة" يا ~ ~ ~

yongling الذهبي (7) | yongling أربع وعشرين المهارة: رائعة جميلة داتانغ الموسيقى

لفهم سلسلة Nodejs - حيوان وعد

الفائز بجائزة شو لو مقابلة السلسلة 80 حاليا الكاتب الوحيد ماجين جائزة لو ليان: الأرض ذات جذور الأدبية شمال غرب تصوير الخير

فرز هيل خوارزمية -oc القتالية (ب)

Nodejs المواد الفعلية - غير متزامن I / O والبرمجة غير المتزامنة

لى يونيو والانخراط في الأشياء، لتحدي الرقم القياسي العالمي! يمكن المتعلقة مقامرة دونغ مينغ تشو وهان صباح

yongling الذهبي (6) | استمر سنة وزار 24 مدينة، تشنغدو متحف Yongling، تفسير الأسر الخمس وعشر دول الكتاب

بيع العقارات - لوك شاو بيع ست غرف نوم قصر الفضة موضوع بهم

العمارة المواد الفعلية (أ) البنية التحتية بناء -Spring الحذاء + MyBatis

وقف وسط إيطاليا تجربة جولة الأولى: وجدت لاتسيو

بعد أكثر من 80 فندقا صغيرا منطقة مخفي ثلاثة أشهر لماذا اختفى تقريبا؟

تصدر مؤسسة جيتس خطابًا مفتوحًا سنويًا تتناول فيه "الأسئلة الصعبة" حول الفقر والحقوق