Vous pouvez télécharger notre squelette de serveur gRPC. pour vous aider à implémenter votre serveur gRPC complet.
Premiers pas
Créez un projet Java Gradle (grpc-booking-service), sous le répertoire src/main, créer un "proto" .
Téléchargez le service de réservation définition et vérification de l'état protocole, placez-les sous src/main/proto. Ces fichiers définissent les méthodes et pour l'API Actions Center et la vérification de l'état.
Mettez à jour le fichier build.gradle, ajoutez des dépendances et le plug-in protobuf pour Gradle. L'introduction de protobuf-gradle-plugin peut être cliquez ici.
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
Exécutez la commande suivante pour créer la bibliothèque et générer automatiquement le code à partir de Plug-in de compilation protoc:
./gradlew build
Pour activer le protocole TLS sur le serveur, sous src/main/certificates/, les fichiers suivants sont requis:
- server_cert_chain.pem, votre chaîne de certificats de serveur au format PEM.
- server_private_key.pem est votre clé privée pour le certificat du serveur. doit être la clé privée PKCS#8
- trusted_client_roots.pem est les certificats racine approuvés lors de l’authentification des clients, vous pouvez choisir d’obtenir cet ensemble de racines de confiance provenant d’une autorité comme Mozilla ou installez l'ensemble de données de racines actuellement recommandées par l'autorité Internet de Google G2. Dans ce dernier cas, vous pouvez avoir de mettre à jour manuellement le certificat racine
Récupérez l'exemple de code à partir de ce dépôt:
git clone https://maps-booking.googlesource.com/java-maps-booking-grpc-server-skeleton
placez le fichier BookingService.java sous src/main/java/ext/maps/booking/partner/v2, placez Health.java sous src/main/java/grpc/health/v1. Dans les deux fichiers, suivez les instructions de la section À FAIRE pour pour terminer vos implémentations.
Mettez à jour le fichier gradle.build pour spécifier la génération de l'exécutable du serveur en ajoutant le code suivant:
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 }
Compilez le serveur:
./gradlew installDist
Exécutez le serveur de réservation:
./build/install/grpc-booking-service/bin/booking-service
Structure du répertoire final
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
Autres références
Pour découvrir d'autres outils de construction, consultez le gRPC-java et téléchargez le exemple, vérifiez grpc-java/examples.
git clone -b v1.9.0 https://github.com/grpc/grpc-java