Я создаю API и использую стандартную среду движка Google App, Java 8 runtime.
Сам REST API построен на GUI + API конечных точек Google.
Я также настроил безопасность на основе API-ключа для конечной точки. Проблема, с которой я сталкиваюсь, заключается в том, что, когда я предоставляю неверный ключ, служба отвечает на 400 неверных запросов с полезной нагрузкой HTML.
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>400 API key not valid. Please pass a valid API key</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: API key not valid. Please pass a valid API key</h1>
</body>
</html>
Есть ли способ заставить конечную точку вместо этого отправлять сообщение JSON? Я бы не стал обременять клиентов разбором HTML в некоторых разовых случаях.
Спасибо
OpenAPI. json (Генерируется с помощью: mvn endpoints-framework: openApiDocs) Отредактировано для удаления конфиденциальной информации.
{
"swagger": "2.0",
"info": {
"version": "1.0.0",
"title": "my-app.appspot.com"
},
"host": "my-app.appspot.com",
"basePath": "/_ah/api",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/operation/v1/query/{type}": {
"get": {
"operationId": "Lookup",
"parameters": [
{
"name": "type",
"in": "path",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "A successful response",
"schema": {
"$ref": "#/definitions/Result"
}
}
},
"security": [
{
"api_key": [ ]
}
]
}
}
},
"securityDefinitions": {
"api_key": {
"type": "apiKey",
"name": "key",
"in": "query"
}
},
"definitions": {
"Result": {
"type": "object",
"properties": {
"field1": {
"type": "string"
},
"field2": {
"type": "string"
}
}
},
}
}