Мы используем 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>>>
при развертывании.