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

Bạn có thể tải máy chủ REST của skeleton 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à cách triển khai tham chiếu cho máy chủ đặt trước 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 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 dịch vụ 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 Jersey và vùng đệm giao thức vào thời gian chạy của vùng đệm giao thức vào tệp src/main/resources, 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 tệp nguồn cho các lớp đã 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 cả đoạn mã sau: protoc --java_out=java resources/waitlist.proto
  5. Bên trong src/main/java, hãy tạo một gói mới khớp với mã nhóm 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, làm theo TODO để hoàn tất quá trình triển khai.

  6. Định cấu hình servlet của bạn 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 phần Run Configurations (Cấu hình chạy), hãy thiết lập một cấu hình máy chủ Tomcat. Thêm tất cả các tệp 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 tệp, nhấp chuột phải và chọn "Put vào /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