Google Cloud Endpoints Guickstart - Google Cloud Endpoints Guickstart
Блоги
Навигационные полоски
Сейчас тема Miscroservices популярна как никогда. Вот и компания Google не осталась в стороне и добавила в свою платформу для разработки облачных приложений Google Cloud (в девичестве Google App Engine) инструмент для разработки микросервисов - Endpoints.
Данный инструмент позволяет создавать REST-сервисы с использованием языков Java и Python (нас естественно интересует Java), деплоить на Google Cloud и использовать их затем либо из веб-приложений либо c мобильного приложения.
Далее ожидается что вы знаете язык Java (и у вас установлена как минимум версия 7.0), вы умеете пользоваться Maven-ом и GIT-ом.
Простейший HelloWorld проект
Не будем изобретать велосипед - для ознакомления проще всего взять готовый HelloWorld пример - https://github.com/GoogleCloudPlatform/appengine-endpoints-helloworld-java-maven:
git clone https://github.com/GoogleCloudPlatform/appengine-endpoints-helloworld-java-maven
Если вы захотите создать свой проект - то следуйте инструкции https://cloud.google.com/appengine/docs/java/endpoints/set-up-environment - только не используется GAE 1.9.37 - в ней ошибка (на текущий момент последняя версия 1.9.38 и в ней все работает хорошо).
На что обратить внимание:
Класс реализующий API
В данном проекте реализова один сервис с несколькими методами - за реализацию сервиса отвечает класс YourFirstAPI. Описание параметров сервиса задается аннтацией @Api
@Api(name = "myApi", version = "v1", namespace = @ApiNamespace(ownerDomain = "helloworld.example.com", ownerName = "helloworld.example.com", packagePath = "")) public class YourFirstAPI {
Для того, что бы к вашему классу шло обращение - его необходимо так же указать в web.xml.
Реализация методов API
Для реализации метода используется аннотация @ApiMethod.
@ApiMethod(name = "sayHi") public MyBean sayHi(@Named("name") String name) {
Надо указать имя метода, можно указать так же HttpMethod (GET/POST - POST по умолчанию).
Ну и в самом методе обработка запроса. Можно возвращать объект (в нашем случае MyBean) - он автоматически будет сконвертирован в JSON.
Авторизация
Одна из основных "фишек" Google Cloud Endpoints - поддержка OAuth2 авторизации "из коробки" - очень удобно в случае, если вам необходимо разработкать сервис, к которому будут обращаться пользователи с учеткой Google. Если ожидается что сервис будет вызываться с авторизацией - то добавьте в него параметр c типом User:
public MyBean sayHiUser(@Named("name") String name, User user) throws OAuthRequestException, IOException { MyBean response = new MyBean(); response.setData("Hi, " + name + "(" + user.getEmail() + ")"); return response; }
Данный метод не просто говорит "Привет" - но и возвращает email пользователя, от учетки которого произошло обращение.
Запуск проекта локально
Для того, что бы посмотреть что получилось локально - необходимо выполнить команду мавен:
mvn appengine:devserver
Если все хорошо - через какое-то время ваши сервисы запустятся на http://localhost:8080
Самый простой способ "поиграть" с сервисами - это использовать Service Explorer: http://localhost:8080/_ah/api/explorer.
НО! Для того что бы он работал, необходимо запустить Chrome из командной строки со специальным набором команд:
[path-to-Chrome] --user-data-dir=test --unsafely-treat-insecure-origin-as-secure=http://localhost:8080
У меня на MacOS X это было
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=test
--unsafely-treat-insecure-origin-as-secure=http://localhost:8080
После этого в открывшемся окне вводите URL http://localhost:8080/_ah/api/explorer и вы должны получить список доступных API (и при клике на нем - список доступных методов)
В API вы можете вызвать любой из методов (пройдя предварительно авторизацию - если это требуется), посмотреть каким запросом метод вызывался (если что - можно повторить потом curl-ом), посмотреть ответ:
Регистрация проекта
Для того, что бы задеплоить проект на Google Cloud необходимо сначала зарегистрировать проект - идем в консоль разработчика - https://console.cloud.google.com/home/dashboard и в верхнем тулбаре (где выпадающий список с проектами) выбираем "Create Project...". Проект можно создавать с настройками по умолчанию - важно - при создании вы зададите ему уникальный ID (например my-super-unique-application-id).
Далее его надо прописать appengine-web.xml (в случае если вы генерировали проект то еще и в pom.xml). После этого вызываем maven:
mvn appengine:update
И после несложного шага авторизации (maven должен убедится что у него есть права на деплой приложения в указанный проект) проект будет задеплоен и запущен в Google Cloud.
Цена вопроса?
Итак, вы получили сервис, запущенный в Google Cloud и использующий все его блага (автоматические масштабирование и так далее и так далее). Сколько стоит? Нисколько. Ну то есть сами endpoint - нисколько. Вам будет необходимо платить только за ресурсы и другие сервисы Google которые он использует.
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.