1.9 KiB
Google API communication
Sluzba poskytuje obecnou komunikacni vrstvu pro Google API. Neobsahuje secrets ve zdrojovem kodu a pro verejne routovani pouziva ROOT_PATH, aby Swagger/OpenAPI fungoval za AppFactory prefixem /apps/<app-id>.
Discovery
GET /google/discovery/apisvraci seznam Google API dostupnych pres Google Discovery service.GET /google/discovery/apis/{api}/{version}/restvraci REST discovery dokument konkretniho API, napr.drive/v3.
Discovery endpointy slouzi k dohledani dostupnych resource, metod, schema a OAuth scope pro konkretni Google API.
OAuth
POST /google/oauth/tokenpodporujeauthorization_codearefresh_tokengrant.POST /google/oauth/service-account-tokenpodporuje service account JWT bearer flow.POST /google/oauth/revokerevokuje token.GET /google/oauth/tokeninfovraci informace o access tokenu nebo ID tokenu.
OAuth client a service account hodnoty je vhodne predavat pres environment variables:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_SERVICE_ACCOUNT_EMAILGOOGLE_PRIVATE_KEYGOOGLE_SCOPES
Obecne REST volani
POST /google/request je genericka proxy pro Google REST API. Request obsahuje HTTP metodu, cilovou Google URL nebo kombinaci baseUrl a path, volitelne query parametry, body a autorizaci.
Priklad volani Google Drive:
{
"method": "GET",
"baseUrl": "https://www.googleapis.com",
"path": "/drive/v3/files",
"query": {
"pageSize": 10
},
"accessTokenEnv": "GOOGLE_ACCESS_TOKEN"
}
Z bezpecnostnich duvodu jsou povolene jen HTTPS URL na Google domenach. Requesty na jine hosty sluzba odmita.
AppFactory overeni
Po deploy over:
GET /apps/google-service/healthGET /apps/google-service/docsGET /apps/google-service/openapi.json
OpenAPI dokument musi obsahovat servers[0].url s hodnotou ROOT_PATH, napr. /apps/google-service, aby Swagger UI volalo endpointy pres verejnou proxy cestu.