0

Я создаю Google облако конечных точек API, я пытаюсь использоватьapiKeyRequired в Google облако конечной точки не получить решить

apiKeyRequired = AnnotationBoolean.TRUE 

В качестве примера на https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/appengine/endpoints-frameworks-v2/backend/src/main/java/com/example/echo/Echo.java

@ApiMethod(name = "echo_api_key", path = "echo_api_key", apiKeyRequired =AnnotationBoolean.TRUE) 
    public Message echoApiKey(Message message, @Named("n") @Nullable Integer n) { 
return doEcho(message, n); 
} 

Мой код это. IDE не может разрешить этот атрибут.

@ApiMethod(
     name = "get", 
     path = "name/{id}", 
     httpMethod = ApiMethod.HttpMethod.GET, 
     apikeyRequired = AnnotationBoolean.TRUE) 

Я декомпилировал ApiMethod аннотацию, оно не имеет apikeyRequired атрибута

package com.google.api.server.spi.config; 

import com.google.api.server.spi.config.ApiMethodCacheControl; 
import com.google.api.server.spi.config.AuthLevel; 
import com.google.api.server.spi.config.Authenticator; 
import com.google.api.server.spi.config.PeerAuthenticator; 
import java.lang.annotation.ElementType; 
import java.lang.annotation.Retention; 
import java.lang.annotation.RetentionPolicy; 
import java.lang.annotation.Target; 

@Retention(RetentionPolicy.RUNTIME) 
@Target({ElementType.METHOD}) 
public @interface ApiMethod { 
String name() default ""; 

String path() default ""; 

String httpMethod() default ""; 

/** @deprecated */ 
@Deprecated 
ApiMethodCacheControl cacheControl() default @ApiMethodCacheControl; 

AuthLevel authLevel() default AuthLevel.UNSPECIFIED; 

String[] scopes() default {"_UNSPECIFIED_LIST_STRING_VALUE"}; 

String[] audiences() default {"_UNSPECIFIED_LIST_STRING_VALUE"}; 

String[] clientIds() default {"_UNSPECIFIED_LIST_STRING_VALUE"}; 

Class<? extends Authenticator>[] authenticators() default {Authenticator.class}; 

Class<? extends PeerAuthenticator>[] peerAuthenticators() default {PeerAuthenticator.class}; 

public static class HttpMethod { 
    public static final String GET = "GET"; 
    public static final String POST = "POST"; 
    public static final String PUT = "PUT"; 
    public static final String DELETE = "DELETE"; 

    public HttpMethod() { 
    } 
    } 
    } 
+0

apiKeyRequired атрибут был добавлен в Cloud Endpoints Framework 2.0. Проверьте свои зависимости для: com.google.endpoints: endpoints-framework: 2.0.0 (более старая версия будет выглядеть примерно как com.google.appengine: appengine-endpoints: 1.x.x) – KrisPrajapati

ответ

0

Вы должны капитализировать к. То есть, apiKeyRequired, а не apikeyRequired.

1

У меня был такой же вопрос раньше. Вы должны убедиться, чтобы удалить все старые приложения-мотористы конечных точек зависимости и использовать новую конечную точку-структуру

compile group: 'com.google.endpoints', name: 'endpoints-framework', version: '2.0.+'