Bộ xương máy chủ đặt trước (REST) cho Java

Bạn có thể tải máy chủ REST bộ khung bằng cách sao chép kho lưu trữ

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

Giới thiệu

Đây là cách triển khai tham chiếu cho máy chủ Đặt phòng API phiên bản 3 dựa trên:

  • google-protobuf
  • Dịch vụ web RESTful

Điều kiện tiên quyết

Yêu cầu cài đặt

Bắt đầu

  1. Sao chép Giao diện Proto vào tệp proto (api_v3.proto). Sửa đổi gói phù hợp với dự án của bạn (com.partner.mapsbooking.v3.model).
  2. Tạo một dự án ứng dụng web trong IDE có tên là booking_server_v3, thêm Maven hỗ trợ cho dự án này.
  3. Đặt tệp proto của bạn trong phần src/main/resources, thêm các phần phụ thuộc cho Jersey và thời gian chạy vùng đệm giao thức vào Maven Tệp 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. Thực thi lệnh sau trong src/main để tự động tạo tệp nguồn cho các lớp được xác định trong tệp proto:

    protoc --java_out=java resources/api_v3.proto
    • Nếu bạn triển khai chức năng danh sách chờ, hãy thực thi cả những nội dung sau: protoc --java_out=tài nguyên java/waitlist.proto
  5. Bên trong src/main/java, hãy tạo một gói mới phù hợp với groupId (com.partner.mapsbooking). Truy xuất mã mẫu từ kho lưu trữ:

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

    đặt các tệp trong gói của bạn, làm theo TODO (VIỆC CẦN LÀM) để hoàn tất quá trình triển khai của bạn.

  6. Định cấu hình servlet bằng cách sửa đổi tệp 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. Trong Cấu hình chạy, hãy thiết lập cấu hình máy chủ Tomcat. Thêm tất cả các tệp jar vào thư mục /WEB_INF/lib (cấu trúc dự án -> cấu phần phần mềm -> Sau khi chọn tất cả các lọ, hãy nhấp chuột phải rồi chọn "Put into /WEB-INF/lib").
  8. Chạy Tomcat để khởi động máy chủ của bạn.

Cấu trúc thư mục cuối cùng

  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