Аннотация API Google App Engine - Использование переменных среды - PullRequest
0 голосов
/ 16 апреля 2019

Мы используем App Engine и Firebase, но у нас небольшая проблема. Мы хотим использовать переменные среды в наших аннотациях API, но мы столкнулись с проблемой.

package com.myapp.services;

import com.google.api.server.spi.auth.EspAuthenticator;
import com.google.api.server.spi.auth.common.User;
import com.google.api.server.spi.config.*;


@Api(
    name = "contacts",
    version = "v1",
    authenticators = {EspAuthenticator.class},
    issuers = {@ApiIssuer(name = "firebase",
            issuer = "https://securetoken.google.com/<<PROJECT_NAME_GOES_HERE>>",
            jwksUri = "https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com")},
    issuerAudiences = {@ApiIssuerAudience(name = "firebase", audiences = "<<PROJECT_NAME_GOES_HERE>>")},
    authLevel = AuthLevel.REQUIRED
)
public class ContactService {

    @ApiMethod(path = "create", httpMethod = "post")
    public Long CreateContact(Contact contact, User user) {
        // Create the record
        return contact.id;
    }
}

Как обновить значения эмитента и аудиторий в зависимости от среды? Мы можем использовать Guice для передачи среды в методы, но не можем вставлять в аннотации.

Нам просто нужен способ обновить <<<PROJECT_NAME_GOES_HERE>>> при развертывании.

...