Khung máy chủ đặt phòng (REST) cho Java

Bạn có thể tải máy chủ REST cơ bản của chúng tôi xuống 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à một bản 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 của Jersey

Đ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 một tệp proto (api_v3.proto). Sửa đổi gói cho 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 tính năng hỗ trợ Maven vào dự án này.
  3. Đặt tệp proto của bạn trong src/main/resources,thêm các phần phụ thuộc cho thời gian chạy Jersey và bộ đệm giao thức vào tệp pom.xml của Maven:
         <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 một 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 triển khai chức năng danh sách chờ, hãy thực thi thêm lệnh sau: protoc --java_out=java resources/waitlist.proto
  5. Trong src/main/java, hãy tạo một gói mới khớp với groupId của bạn (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, hãy làm theo TODO để hoàn tất quá trình triển khai.

  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 Run Configurations (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 -> tạo phẩm -> Sau khi chọn tất cả các tệp jar, hãy nhấp chuột phải rồi chọn "Put into /WEB-INF/lib" (Đặt vào /WEB-INF/lib)).
  8. Chạy Tomcat để khởi động máy chủ.

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