Sunucudan sunucuya (güvenilir) iletişimde, ham REST veya gRPC üzerinden geliştirme yapmak yerine daha iyi bir deneyim için dile özgü GAPI istemci kitaplıkları kullanmanızı öneririz. Bu istemcilerin temel aldığı protobuf dosyalarına https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/delivery/v1 adresinden erişilebilir.
Uygulamanızın dilinde kitaplıklar yoksa gRPC veya Fleet Engine REST uç noktalarını kullanmanızı öneririz.
NOT: GAPIC kitaplıkları güvenilir (sunucu) ortamlarda çalışacak şekilde tasarlanmıştır.
JWT'ler gerekmez. Uygulama Varsayılan Kimlik Bilgilerini uygun deliveryAdmin
rolüyle birlikte kullanın.
Java
Java kitaplıkları google.maps.fleetengine.delivery.v1
altında yayınlanmıştır.
Gradle
plugins {
id "maven-publish"
id "com.google.cloud.artifactregistry.gradle-plugin" version "2.1.4"
}
publishing {
repositories {
maven {
url "artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven"
}
}
}
repositories {
maven {
url "artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven"
}
}
dependencies {
implementation 'com.google.maps:gapic-google-maps-fleetengine-delivery-v1-java:latest.release'
}
Maven
<project>
<distributionManagement>
<snapshotRepository>
<id>artifact-registry</id>
<url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
</snapshotRepository>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
</repository>
</distributionManagement>
<repositories>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<extensions>
<extension>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.1.4</version>
</extension>
</extensions>
</build>
<dependency>
<groupId>com.google.maps</groupId>
<artifactId>gapic-google-maps-fleetengine-delivery-v1-java</artifactId>
<version>LATEST</version>
</dependency>
</project>
Java ortamında imzalı JSON web jetonları oluşturmak için Java için Fleet Engine Yetkilendirme Kitaplığı'ndan yararlanabilirsiniz.
Fleet Engine API ile etkileşimle ilgili Java örneklerini Fleet Engine'i kullanmaya başlama sayfasında görebilirsiniz.
Node.js / TypeScript
npm
Kitaplık URL'sini package.json
öğesinin dependencies
bölümünde belirtebilirsiniz:
{
"dependencies": {
"@googlemaps/fleetengine-delivery": "https://storage.googleapis.com/fleetengine-gapic/dist/latest_release/maps-fleetengine-delivery-v1-nodejs.tar.gz",
"google-auth-library": "^9.2.0",
"googleapis": "^118.0.0"
}
}
Örnek kod:
const {google} = require('googleapis');
const fleetengine = require('@googlemaps/fleetengine-delivery');
const {GoogleAuth} = require('google-auth-library');
// CONSTANTS
const PROJECT_ID = 'YOUR_GCP_PROJECT_NAME';
const VEHICLE_ID = 'YOUR_VEHICLE_ID';
const SERVICE_ACCOUNT = 'YOUR_SERVICE_ACCOUNT';
const SERVICE_ACCOUNT_EMAIL = `${SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com`;
// CREATE A JWT FOR AUTHENTICATION
const HOWLONG = 55 * 60; // 55 minutes, cannot be more than 60 minutes
async function signToken(claims) {
const googleAuth = new google.auth.GoogleAuth({
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
});
const authClient = await googleAuth.getClient();
google.options({auth: authClient});
const now = Math.round(Date.now() / 1000);
const iat = now - 300;
const exp = now + HOWLONG;
const request = {
name: `projects/-/serviceAccounts/${SERVICE_ACCOUNT_EMAIL}`,
requestBody: {
payload: JSON.stringify({
iss: SERVICE_ACCOUNT_EMAIL,
sub: SERVICE_ACCOUNT_EMAIL,
aud: 'https://fleetengine.googleapis.com/',
iat: iat,
exp: exp,
authorization: claims
}),
}
};
const response = await google.iamcredentials('v1').projects.serviceAccounts
.signJwt(request)
.catch((err) => {
if (err.errors) throw err.errors;
else throw err;
});
return response.data.signedJwt;
}
// MAKE A REQUEST
async function main() {
const claims = {
deliveryvehicleid: VEHICLE_ID
};
signToken(claims).then(token => {
let auth = new GoogleAuth();
auth.cachedCredential = new AuthorizationHeaderProvider(token);
const client = new fleetengine.DeliveryServiceClient({ auth: auth });
client.getDeliveryVehicle({name: `providers/${PROJECT_ID}/deliveryVehicles/${VEHICLE_ID}`}).then(function(resp) {
console.log(resp);
}, function(err) {
console.log(err);
});
});
}
class AuthorizationHeaderProvider {
constructor(token) {
this.token = token;
}
getRequestMetadata(url, callback) {
callback(null, {'authorization': `Bearer ${this.token}`});
}
}
main().catch(console.error);
Go
Go kitaplığı https://pkg.go.dev/cloud.google.com/go/maps adresinde modül olarak paket hâlinde sunulur.
Python
https://pypi.org/project/google-maps-fleetengine-delivery/0.1.0/ adresine göz atın
pip
pip install google-auth
pip install google-maps-fleetengine-delivery
C#
C# kitaplığı için yükleme talimatlarını https://www.nuget.org/packages/Google.Maps.FleetEngine.Delivery.V1 adresinde bulabilirsiniz.
PHP
PHP kitaplığını https://storage.googleapis.com/fleetengine-gapic/dist/latest_release/google-maps-fleetengine-delivery-v1-php.tar.gz adresinden indirebilirsiniz.
Ruby
https://rubygems.org/gems/google-maps-fleet_engine-delivery adresine göz atın.