Java için gPPID Sunucusu İskeleti

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Eksiksiz gTB sunucunuzu uygulamaya başlamak için iskeleton gTB sunucumuzu indirebilirsiniz.

Başlayın

  1. Bir java gradle projesi (grpc-booking-service) oluşturun: src/main'in altında bir 'proto' dizini oluşturun.

  2. 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.

  3. 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
    
  4. Kitaplığı oluşturmak ve protoc derleme eklentisinden otomatik olarak kod oluşturmak için aşağıdaki komutu çalıştırın:

      ./gradlew build
    
  5. 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.
  6. 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.

  7. 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
    }
    
  8. Sunucuyu derleyin:

    ./gradlew installDist
    
  9. 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