53 lines
1.4 KiB
Markdown
53 lines
1.4 KiB
Markdown
# google-service
|
|
|
|
Node.js TypeScript sluzba pro komunikaci s Google API za AppFactory reverse proxy.
|
|
|
|
## Endpointy
|
|
|
|
- `GET /`
|
|
- `GET /health`
|
|
- `GET /docs`
|
|
- `GET /openapi.json`
|
|
- `GET /google/discovery/apis`
|
|
- `GET /google/discovery/apis/{api}/{version}/rest`
|
|
- `POST /google/oauth/token`
|
|
- `POST /google/oauth/service-account-token`
|
|
- `POST /google/oauth/revoke`
|
|
- `GET /google/oauth/tokeninfo`
|
|
- `POST /google/request`
|
|
|
|
## Konfigurace
|
|
|
|
Volitelne environment variables:
|
|
|
|
- `ROOT_PATH` - verejny prefix za AppFactory proxy, napr. `/apps/google-service`
|
|
- `PORT` - port aplikace, vychozi hodnota je `3000`
|
|
- `GOOGLE_CLIENT_ID` a `GOOGLE_CLIENT_SECRET` - OAuth client pro authorization code a refresh token flow
|
|
- `GOOGLE_SERVICE_ACCOUNT_EMAIL`, `GOOGLE_PRIVATE_KEY`, `GOOGLE_SCOPES` - service account JWT flow
|
|
- `GOOGLE_API_KEY` - API key pro Google API, ktere ji podporuji
|
|
|
|
Secrets se nevraci v zadnem endpointu a neloguji se.
|
|
|
|
## Obecne volani Google API
|
|
|
|
`POST /google/request` umi volat libovolny HTTPS endpoint na Google domene. Autorizace muze jit pres:
|
|
|
|
- `Authorization: Bearer <token>` header na requestu do sluzby
|
|
- `accessToken` v body
|
|
- `accessTokenEnv` v body, napr. `GOOGLE_ACCESS_TOKEN`
|
|
- `GOOGLE_API_KEY`, `apiKey` nebo `apiKeyEnv` pro endpointy podporujici API key
|
|
|
|
Priklad:
|
|
|
|
```json
|
|
{
|
|
"method": "GET",
|
|
"baseUrl": "https://www.googleapis.com",
|
|
"path": "/drive/v3/files",
|
|
"query": {
|
|
"pageSize": 10
|
|
},
|
|
"accessTokenEnv": "GOOGLE_ACCESS_TOKEN"
|
|
}
|
|
```
|