API на стороне администратора и клиента в облачных конечных точках Java - PullRequest
0 голосов
/ 15 января 2019

Я собираюсь создать API для книги, где пользователь сможет получать данные об этой книге. Этот API-интерфейс состоит из двух частей: одна - со стороны администратора, другая - со стороны клиента.

Только администратор может добавлять, обновлять или удалять данные.
Пользователь может только просматривать (читать) данные.

Для этого я использую конечные точки Google Cloud. Но в облачных конечных точках весь метод виден пользователям. Я знаю, что я могу ограничить некоторые методы, но даже ограниченный метод также отображается в API Explorer и Client Library. Я не хочу показывать это Методы только в API Explorer. Администратор может видеть эти методы в API Explorer и библиотеках.

Как я могу это сделать? Могу ли я создать два разных API, один для администратора и второй для клиента? Создание двух разных проектов дублирует большую часть кода.

Есть ли шаблон дизайна для такой ситуации?

Любое предложение, что мне нужно сделать.

1 Ответ

0 голосов
/ 18 января 2019

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

Однако, вы можете иметь несколько API конечных точек в одном проекте GCP (используя gcloud endpoints services deploy, со спецификациями API, которые имеют разные имена хостов).

Тем не менее, если вы используете Endpoints Frameworks (из тега вашего вопроса), у вас есть хитрые ограничения для работы: один проект GCP может иметь не более одного приложения App Engine ([your-project-id] .appspot). .com). Итак, что делать?

Если вы хотите разместить API администратора в другом поддомене, вы можете использовать «сервисы» App Engine (ранее называвшиеся «модулями»). Это позволяет развертывать приложения в доменах, таких как [modulename]-dot-[your-project-id].appspot.com. Вы можете загружать различные спецификации API конечных точек для каждого из этих имен хостов.

Это должно позволить вам сделать что-то вроде:

  • API администратора: [admin]-dot-[your-project-id].appspot.com
  • Пользовательский API: [user]-dot-[your-project-id].appspot.com, или просто [your-project-id].appspot.com ("default" услуга)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...