Search in sources :

Example 6 with Schema

use of com.google.api.server.spi.config.model.Schema in project endpoints-java by cloudendpoints.

the class ApiConfigValidator method validateResourceAndFieldNames.

private void validateResourceAndFieldNames(ApiMethodConfig methodConfig) throws PropertyParameterNameConflictException {
    for (ApiParameterConfig parameterConfig : methodConfig.getParameterConfigs()) {
        if (parameterConfig.getClassification() == Classification.RESOURCE) {
            Schema schema = schemaRepository.getOrAdd(parameterConfig.getSchemaBaseType(), methodConfig.getApiConfig());
            Set<String> fieldNames = schema.fields().keySet();
            for (ApiParameterConfig parameter : methodConfig.getParameterConfigs()) {
                if (parameter.getClassification() == Classification.API_PARAMETER && !"id".equals(parameter.getName()) && fieldNames.contains(parameter.getName())) {
                    log.atWarning().log("Parameter %s conflicts with a resource field name. This may " + "result in unexpected values in the request.", parameter.getName());
                }
            }
        }
    }
}
Also used : ApiParameterConfig(com.google.api.server.spi.config.model.ApiParameterConfig) Schema(com.google.api.server.spi.config.model.Schema)

Aggregations

Schema (com.google.api.server.spi.config.model.Schema)6 ApiParameterConfig (com.google.api.server.spi.config.model.ApiParameterConfig)4 JsonSchema (com.google.api.services.discovery.model.JsonSchema)3 ApiConfig (com.google.api.server.spi.config.model.ApiConfig)2 RestMethod (com.google.api.services.discovery.model.RestMethod)2 Request (com.google.api.services.discovery.model.RestMethod.Request)2 Response (com.google.api.services.discovery.model.RestMethod.Response)2 LinkedHashMap (java.util.LinkedHashMap)2 ApiLimitMetricConfig (com.google.api.server.spi.config.model.ApiLimitMetricConfig)1 ApiMethodConfig (com.google.api.server.spi.config.model.ApiMethodConfig)1 ApiNamespaceConfig (com.google.api.server.spi.config.model.ApiNamespaceConfig)1 AuthScopeRepository (com.google.api.server.spi.config.model.AuthScopeRepository)1 AuthScopeExpression (com.google.api.server.spi.config.scope.AuthScopeExpression)1 RestDescription (com.google.api.services.discovery.model.RestDescription)1 Auth (com.google.api.services.discovery.model.RestDescription.Auth)1 Oauth2 (com.google.api.services.discovery.model.RestDescription.Auth.Oauth2)1 ScopesElement (com.google.api.services.discovery.model.RestDescription.Auth.Oauth2.ScopesElement)1 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 Operation (io.swagger.models.Operation)1