Eksiksiz gTB sunucunuzu uygulamaya başlamak için iskeleton gTB sunucumuzu indirebilirsiniz.
Başlayın
Bir java gradle projesi (grpc-booking-service) oluşturun: src/main'in altında bir 'proto' dizini oluşturun.
Rezervasyon hizmeti tanımını ve sağlık kontrolü protokolünü indirin ve src/main/proto altına yerleştirin. Bu dosyalar, Google ile Rezervasyon API'si ve Durum Denetimi için gTB yöntemlerini ve mesajlarını tanımlar.
build.gradle dosyasını güncelleyin, Gradle için bağımlıları ve protobuf eklentisini ekleyin. Protobuf-gradle eklentisine giriş ve kılavuzu burada bulabilirsiniz.
apply plugin: 'java' apply plugin: 'com.google.protobuf' repositories { mavenCentral() } // updating the version in our release process. def grpcVersion = '1.8.0' // CURRENT_GRPC_VERSION def nettyTcNativeVersion = '2.0.7.Final' dependencies { compile "com.google.api.grpc:proto-google-common-protos:0.1.9" compile "io.grpc:grpc-netty:${grpcVersion}" compile "io.grpc:grpc-protobuf:${grpcVersion}" compile "io.grpc:grpc-stub:${grpcVersion}" compile "io.netty:netty-tcnative-boringssl-static:${nettyTcNativeVersion}" compile "org.bouncycastle:bcmail-jdk15:1.46" testCompile "io.grpc:grpc-testing:${grpcVersion}" testCompile "junit:junit:4.12" testCompile "org.mockito:mockito-core:1.9.5" } buildscript { repositories { mavenCentral() } dependencies { // ASSUMES GRADLE 2.12 OR HIGHER. Use plugin version 0.7.5 with earlier // gradle versions classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.1' } } protobuf { protoc { artifact = 'com.google.protobuf:protoc:3.4.0' } plugins { grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" } } generateProtoTasks { all()*.plugins { grpc {} } } } // Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code. sourceSets { main { java { srcDirs 'build/generated/source/proto/main/grpc' srcDirs 'build/generated/source/proto/main/java' } } } // Generate IntelliJ IDEA's .idea & .iml project files apply plugin: 'idea' // Provide convenience executables for trying out the examples. apply plugin: 'application' startScripts.enabled = false
Kitaplığı oluşturmak ve protoc derleme eklentisinden otomatik olarak kod oluşturmak için aşağıdaki komutu çalıştırın:
./gradlew build
Sunucuda TLS'yi etkinleştirmek için src/main/certificates/ altında, aşağıdaki dosyalar istenir:
- Sunucu sertifika zincirinizi PEM biçiminde server_cert_chain.pem
- Sunucu sertifika zinciri için özel anahtarınızın server_private_key.pem olması gerekir. Bu anahtar, PKCS#8 özel anahtar olmalıdır
- İstemcilerin kimliğini doğrularken trusted_client_roots.pem kök sertifikalarını güvenilir hale getirirseniz Mozilla gibi bir yetkiliden bu kök kök kümesini almayı seçebilir veya Google İnternet Kurumu G2 tarafından şu anda önerilen kök kümesini yükleyebilirsiniz. İkinci durumda, kök sertifikayı zaman zaman manuel olarak güncellemeniz gerekebilir.
Bu depodan örnek kodu alın:
git clone https://maps-booking.googlesource.com/java-maps-booking-grpc-server-skeleton
BookingService.java'yı src/main/java/ext/maps/booking/partner/v2 altına, Health.java dosyasını src/main/java/grpc/health/v1 altına yerleştirin. Uygulamalarınızı tamamlamak için her iki dosyada da YAPILACAKLAR bölümünü izleyin.
Aşağıdaki kodu ekleyerek yürütülebilir sunucu oluşturmayı belirtmek için gradle.build dosyasını güncelleyin:
task bookingService(type: CreateStartScripts) { mainClassName = 'ext.maps.booking.partner.v2.BookingService' applicationName = 'booking-service' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } applicationDistribution.into('bin') { from(bookingService) fileMode = 0755 }
Sunucuyu derleyin:
./gradlew installDist
Rezervasyon sunucusunu çalıştırın:
./build/install/grpc-booking-service/bin/booking-service
Nihai Dizin Yapısı
src
|---main
|---certificates
|---server_cert_chain.pem
|---server_private_key.pem
|---trusted_client_roots.pem
|---java
|---ext.maps.booking.partner.v2.BookingService.java
|---grpc.health.v1.Health.java
|---proto
|---booking_service.proto
|---health.proto
|---test
Diğer Referanslar
Diğer derleme araçları için gTB-java sayfasını ziyaret edip örneği indirin, grpc-java/examples adresini kontrol edin.
git clone -b v1.9.0 https://github.com/grpc/grpc-java