Skeleton Server Pemesanan (REST) untuk Java
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Anda dapat mendownload
server REST kerangka dengan meng-clone repo
git clone https://maps-booking.googlesource.com/java-maps-booking-rest-server-v3-skeleton
Pengantar
Ini adalah implementasi referensi untuk server Pemesanan API v3 berdasarkan:
- google-protobuf
- Layanan Web RESTful Jersey
Prasyarat
Memerlukan penginstalan
Mulai
- Salin Proto Interface ke dalam file proto (api_v3.proto). Ubah
paket agar cocok dengan project Anda (com.partner.mapsbooking.v3.model).
- Buat project aplikasi web di IDE Anda bernama booking_server_v3, tambahkan
dukungan Maven ke project ini.
- Tempatkan file proto Anda di bagian src/main/resources, tambahkan dependensi untuk runtime Jersey dan buffering protokol ke file pom.xml 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>
-
Jalankan perintah berikut di bagian src/main untuk membuat file sumber secara otomatis untuk class yang ditentukan dalam file proto:
protoc --java_out=java resources/api_v3.proto
- Jika menerapkan fungsi daftar tunggu, jalankan juga hal berikut:
protoc --java_out=java resources/waitlist.proto
-
Di dalam src/main/java, buat paket baru yang cocok dengan
groupId Anda (com.partner.mapsbooking). Ambil kode contoh dari
repo:
git clone https://maps-booking.googlesource.com/java-maps-booking-rest-server-v3-skeleton
tempatkan file di dalam paket Anda, ikuti TODO untuk menyelesaikan
penerapan Anda.
- Konfigurasikan servlet Anda dengan mengubah file 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>
- Di Run Configurations, siapkan konfigurasi server Tomcat. Tambahkan semua
jar ke direktori /WEB_INF/lib (struktur project -> artefak ->
Setelah memilih semua jar, klik kanan dan pilih "Masukkan ke /WEB-INF/lib").
- Jalankan Tomcat untuk memulai server.
Struktur Direktori Akhir
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
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-26 UTC.
[null,null,["Terakhir diperbarui pada 2025-07-26 UTC."],[[["\u003cp\u003eThis guide provides steps to set up a reference implementation for API v3 Booking server using google-protobuf and Jersey RESTful Web Services.\u003c/p\u003e\n"],["\u003cp\u003eIt requires Apache Maven, Protocol compiler for Java, and Apache Tomcat as prerequisites for successful implementation.\u003c/p\u003e\n"],["\u003cp\u003eYou'll need to clone a skeleton REST server, integrate provided proto interfaces, and configure your project with necessary dependencies.\u003c/p\u003e\n"],["\u003cp\u003eThe setup involves generating source files from proto definitions, implementing server logic, configuring a servlet, and deploying to a Tomcat server.\u003c/p\u003e\n"],["\u003cp\u003eThe final directory structure organizes source code, resources, and tests for a clear and maintainable project layout.\u003c/p\u003e\n"]]],["Clone the skeleton REST server using `git clone`. Copy the Proto Interface into a `api_v3.proto` file, modifying the package name. Create a `booking_server_v3` web application project with Maven support and place the proto file in `src/main/resources`. Add Jersey and protocol buffer dependencies to `pom.xml`. Generate source files using `protoc`. Retrieve sample code from the skeleton repo and place it in a new package, completing implementation based on TODOs. Configure the servlet in `web.xml`. Finally, set up and run a Tomcat server, adding all jars to the /WEB_INF/lib.\n"],null,["# Booking Server (REST) Skeleton for Java\n\nYou can download our\n[skeleton REST server](https://maps-booking.googlesource.com/java-maps-booking-rest-server-v3-skeleton/) by cloning the repo \n\n```java\ngit clone https://maps-booking.googlesource.com/java-maps-booking-rest-server-v3-skeleton\n```\n\nIntroduction\n------------\n\nThis is a reference implementation for API v3 Booking server based on:\n\n- [](/protocol-buffers/docs/overview)google-protobuf\n- [](https://jersey.github.io/)Jersey RESTful Web Services\n\n### Prerequisites\n\nRequire installations of\n\n- [Apache Maven](https://maven.apache.org/)\n- [Protocol compiler for java](https://github.com/google/protobuf)\n- [Apache Tomcat](http://tomcat.apache.org/)\n\n### Get Started\n\n1. Copy the [Proto Interface](/actions-center/verticals/local-services/e2e/reference/booking-server-api-rest/e2e-definitions/proto-interface) into a proto file (api_v3.proto). Modify the package to match your project (com.partner.mapsbooking.v3.model).\n - If implementing waitlist functionality, repeat the same steps with the [Waitlist Proto Interface](/actions-center/verticals/local-services/e2e/reference/booking-server-api-rest/e2e-definitions/proto-interface)\n2. Create a web application project in your IDE named booking_server_v3, add Maven support to this project.\n3. Place your proto file under the **src/main/resources,** add dependencies for Jersey and protocol buffers runtime to the Maven **pom.xml** file: \n\n ```java\n \u003cdependencyManagement\u003e\n \u003cdependencies\u003e\n \u003cdependency\u003e\n \u003cgroupId\u003eorg.glassfish.jersey\u003c/groupId\u003e\n \u003cartifactId\u003ejersey-bom\u003c/artifactId\u003e\n \u003cversion\u003e${jersey.version}\u003c/version\u003e\n \u003ctype\u003epom\u003c/type\u003e\n \u003cscope\u003eimport\u003c/scope\u003e\n \u003c/dependency\u003e\n \u003c/dependencies\u003e\n \u003c/dependencyManagement\u003e\n\n \u003cdependencies\u003e\n \u003cdependency\u003e\n \u003cgroupId\u003eorg.glassfish.jersey.containers\u003c/groupId\u003e\n \u003cartifactId\u003ejersey-container-servlet-core\u003c/artifactId\u003e\n \u003c/dependency\u003e\n \u003cdependency\u003e\n \u003cgroupId\u003eorg.glassfish.jersey.media\u003c/groupId\u003e\n \u003cartifactId\u003ejersey-media-json-jackson\u003c/artifactId\u003e\n \u003cversion\u003e2.27\u003c/version\u003e\n \u003c/dependency\u003e\n \u003cdependency\u003e\n \u003cgroupId\u003ecom.google.protobuf\u003c/groupId\u003e\n \u003cartifactId\u003eprotobuf-java\u003c/artifactId\u003e\n \u003cversion\u003e3.5.1\u003c/version\u003e\n \u003c/dependency\u003e\n \u003cdependency\u003e\n \u003cgroupId\u003eio.grpc\u003c/groupId\u003e\n \u003cartifactId\u003egrpc-protobuf\u003c/artifactId\u003e\n \u003cversion\u003e1.11.0\u003c/version\u003e\n \u003c/dependency\u003e\n \u003c/dependencies\u003e\n\n \u003cproperties\u003e\n \u003cjava.version\u003e1.8\u003c/java.version\u003e\n \u003cjersey.version\u003e2.23.2\u003c/jersey.version\u003e\n \u003c/properties\u003e\n ```\n4. Execute the following command under **src/main** to auto-generate a\n source file for the classes defined in the proto file:\n\n ```java\n protoc --java_out=java resources/api_v3.proto\n ```\n - If implementing waitlist functionality, also execute the following: protoc --java_out=java resources/waitlist.proto\n5. Inside of the **src/main/java**, create a new package matching your\n groupId (com.partner.mapsbooking). Retrieve the sample code from the\n repo:\n\n ```java\n git clone https://maps-booking.googlesource.com/java-maps-booking-rest-server-v3-skeleton\n ```\n\n place the files under your package, follow the **TODOs** to complete\n your implementation.\n6. Configure your servlet by modifying the **web.xml** file: \n\n ```java\n \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n \u003cweb-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd\"\n version=\"4.0\"\u003e\n\n \u003cservlet\u003e\n \u003cservlet-name\u003eBooking Rest Server\u003c/servlet-name\u003e\n \u003cservlet-class\u003eorg.glassfish.jersey.servlet.ServletContainer\u003c/servlet-class\u003e\n \u003cinit-param\u003e\n \u003cparam-name\u003ejersey.config.server.provider.packages\u003c/param-name\u003e\n \u003cparam-value\u003ecom.partner.mapsbooking\u003c/param-value\u003e\n \u003c/init-param\u003e\n \u003cload-on-startup\u003e1\u003c/load-on-startup\u003e\n \u003c/servlet\u003e\n\n \u003cservlet-mapping\u003e\n \u003cservlet-name\u003eBooking Rest Server\u003c/servlet-name\u003e\n \u003curl-pattern\u003e/mapsbooking/*\u003c/url-pattern\u003e\n \u003c/servlet-mapping\u003e\n \u003c/web-app\u003e\n ```\n7. In the Run Configurations, set up a Tomcat server configuration. Add all the jars to the /WEB_INF/lib directory (project structure -\\\u003e artifacts -\\\u003e After selecting all jars right click and choose \"Put into /WEB-INF/lib\").\n8. Run Tomcat to start your server.\n\n### Final Directory Structure\n\n```java\n src\n |---main\n |---java\n |---com.partner.mapsbooking\n |---rest\n |---BookingService.java\n |---BookingExceptionMapper.java\n |---Error.java\n |---authentication\n |---AuthenticationService.java\n |---RestAuthenticationFilter.java\n |---v3.model\n |---ApiV3.java\n |---Waitlist.java\n |---resources\n |---api_v3.proto\n |---waitlist.proto\n |---test\n```"]]