Я пытаюсь создать пользовательский API с помощью Google Cloud Endpoints v2, размещенного на App Engine в Python.Пользовательский API - это API, который взаимодействует с внешним API.Например, пользовательский API будет иметь метод GET, который при вызове отправляет запрос GET стороннему API.
Вариант использования: упростить использование стороннего API в компании и добавить дополнительные проверки для проверки доступа к возвращенным данным.
Существует ли простой способ возвратауже отформатированный ответ API от стороннего API от моего пользовательского API? Когда я говорю просто, я имею в виду не преобразовывать ответ JSON в сообщение конечной точки.Сторонний API вернет что-то вроде:
{
keyOne: "key one value",
keyTwo: "key two value",
keyThree: ["key three value array", "another string", "and another string"],
keyFour: [
{
keyOne: "key one value",
keyTwo: "key two value",
keyThree: ["key three value array", "another string", "and another string"],
},
{
keyOne: "key one value",
keyTwo: "key two value",
keyThree: ["key three value array", "another string", "and another string"],
},
]
}
Я пытаюсь не преобразовывать JSON в сообщение конечной точки.
class GetResponse(messages.Message):
keyOne = messages.StringField(1)
keyTwo = messages.StringField(2, required=True)
keyThree = messages.MessageField(SomeStringList, 3)
keyFour = messages.MessageField(SomeJsonList, 4)
class SomeStringList(messages.Message):
keyFive = messages.StringField(1, repeated=True)
class SomeJsonList(messages.Message):
keySix = messages.MessageField(GetResponse, 1, repeated=True)
...
#Convert JSON
converted_json_list = []
for obj in resObj["keyFour"]:
converted_json_list.append(GetResponse(
keyOne=obj["keyOne"],
keyTwo=obj["keyTwo"],
keyThree=obj["keyThree"]
))
return GetResponse(
keyOne=resObj["keyOne"],
keyTwo=resObj["keyTwo"],
keyThree=resObj["keyThree"]
keyFour=converted_json_list
)
К вашему сведению, это упрощенная версия JSON.Мой реальный код преобразования намного длиннее и сложнее.
Я пропускаю что-то в библиотеке конечных точек или в Python, которая сделает это преобразование для меня?
Мой самый большой страх в том, что времяпреобразование ответа из стороннего ответа API приведет к тому, что время ожидания пользовательского API будет больше, чем обычное 30-секундное время ожидания при ожидании ответа API.