اسکلت سرور رزرو (REST) ​​برای جاوا

شما می توانید سرور REST اسکلت ما را با شبیه سازی مخزن دانلود کنید

git clone https://maps-booking.googlesource.com/java-maps-booking-rest-server-v3-skeleton

معرفی

این یک پیاده سازی مرجع برای سرور رزرو API v3 بر اساس:

  • google-protobuf
  • Jersey RESTful Web Services

پیش نیازها

نیاز به نصب از

شروع کنید

  1. رابط پروتو را در یک فایل پروتو کپی کنید (api_v3.proto). بسته را برای مطابقت با پروژه خود تغییر دهید (com.partner.mapsbooking.v3.model).
    • در صورت اجرای عملکرد لیست انتظار، همان مراحل را با واسط Waitlist Proto تکرار کنید
  2. یک پروژه برنامه کاربردی وب در IDE خود با نام booking_server_v3 ایجاد کنید، پشتیبانی Maven را به این پروژه اضافه کنید.
  3. فایل پروتو خود را در زیر src/main/resources قرار دهید، وابستگی هایی را برای Jersey و بافرهای پروتکل زمان اجرا به فایل Maven pom.xml اضافه کنید:
         <dependencyManagement>
             <dependencies>
                 <dependency>
                     <groupId>org.glassfish.jersey</groupId>
                     <artifactId>jersey-bom</artifactId>
                     <version>${jersey.version}</version>
                     <type>pom</type>
                     <scope>import</scope>
                 </dependency>
             </dependencies>
         </dependencyManagement>
    
         <dependencies>
             <dependency>
                 <groupId>org.glassfish.jersey.containers</groupId>
                 <artifactId>jersey-container-servlet-core</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.glassfish.jersey.media</groupId>
                 <artifactId>jersey-media-json-jackson</artifactId>
                 <version>2.27</version>
             </dependency>
             <dependency>
                 <groupId>com.google.protobuf</groupId>
                 <artifactId>protobuf-java</artifactId>
                 <version>3.5.1</version>
             </dependency>
             <dependency>
                 <groupId>io.grpc</groupId>
                 <artifactId>grpc-protobuf</artifactId>
                 <version>1.11.0</version>
             </dependency>
         </dependencies>
    
         <properties>
             <java.version>1.8</java.version>
             <jersey.version>2.23.2</jersey.version>
         </properties>
    
  4. دستور زیر را در زیر src/main برای تولید خودکار یک فایل منبع برای کلاس های تعریف شده در فایل پروتو اجرا کنید:

    protoc --java_out=java resources/api_v3.proto
    
    • در صورت اجرای عملکرد لیست انتظار، موارد زیر را نیز اجرا کنید: protoc --java_out=java resources/waitlist.proto
  5. در داخل src/main/java ، یک بسته جدید مطابق با groupId خود ایجاد کنید (com.partner.mapsbooking). کد نمونه را از مخزن بازیابی کنید:

     git clone https://maps-booking.googlesource.com/java-maps-booking-rest-server-v3-skeleton
    

    فایل ها را زیر بسته خود قرار دهید، TODO ها را دنبال کنید تا پیاده سازی خود را کامل کنید.

  6. سرورلت خود را با تغییر فایل web.xml پیکربندی کنید:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
    
        <servlet>
            <servlet-name>Booking Rest Server</servlet-name>
            <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
            <init-param>
                <param-name>jersey.config.server.provider.packages</param-name>
                <param-value>com.partner.mapsbooking</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>Booking Rest Server</servlet-name>
            <url-pattern>/mapsbooking/*</url-pattern>
        </servlet-mapping>
    </web-app>
    
  7. در Run Configurations، یک پیکربندی سرور Tomcat را تنظیم کنید. همه jar ها را به پوشه /WEB_INF/lib اضافه کنید (ساختار پروژه -> مصنوعات -> پس از انتخاب همه شیشه ها کلیک راست کرده و "Put into /WEB-INF/lib" را انتخاب کنید.
  8. Tomcat را اجرا کنید تا سرور شما راه اندازی شود.

ساختار فهرست نهایی

  src
  |---main
      |---java
          |---com.partner.mapsbooking
              |---rest
                  |---BookingService.java
                  |---BookingExceptionMapper.java
                  |---Error.java
              |---authentication
                  |---AuthenticationService.java
                  |---RestAuthenticationFilter.java
              |---v3.model
                  |---ApiV3.java
                  |---Waitlist.java
      |---resources
          |---api_v3.proto
          |---waitlist.proto
  |---test