أنت لا تزال تنفق الكثير من الوقت مع بعقب على الواجهة الأمامية دون تأثير؟
أنت لا تزال إرسال الوثائق واجهة والمتاعب؟
اليوم، ونحن نعلم واجهة لرسو السفن قطعة أثرية التبختر
التبختر يمكن أن تساعدنا على عرض بسرعة التعاريف واجهة واجهة سريعة المكالمات اختبار
دعونا نلقي نظرة على هذه الألوان الحقيقية القطع الأثرية
ما لم يتم العثور على واجهة في لمحة؟
مشروع دعونا متكاملة على 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 تحالف مكافحة" يا ~ ~ ~