Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Пишем блог на микросервисах – часть 2 «API Gateway»

Блог компании X5 Retail GroupGo*Микросервисы*
Из песочницы
В первой части нашего цикла статей «Пишем блог на микросервисах» мы описали общий подход к решению задачи.

Теперь пришла очередь API Gateway или API GW.

В нашем c ptimofeev API GW мы реализуем следующие функции:

  • Конвертация REST запросов в gRPC запросы и наоборот.
  • Логирование запросов.
  • Аутентификация запросов.
  • Присвоение каждому запросу Trace ID для дальнейшей передачи его между микросервисами по всей цепочке выполнения запроса.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Просмотры10K
Комментарии 8

JSON-RPC? Возьмите хитрый REST

Высокая производительность*PHP*JavaScript*Сетевые технологии*API*


Уверен, что заголовок вызвал здоровую реакцию — “ну опять началось…” Но позвольте завладеть вашим вниманием на 5-10 минут, и я постараюсь не обмануть ожидания.


Структура статьи будет такова: берется стереотипное утверждение и раскрывается “природа” возникновения этого стереотипа. Надеюсь, это позволит взглянуть на выбор парадигмы обмена данными в ваших проектах под новым углом.


Для того, чтобы была ясность в том, что такое RPC, предлагаю рассматривать стандарт JSON-RPC 2.0. C REST ясности нет. И не должно быть. Все, что нужно знать о REST — он неотличим от HTTP.

Читать дальше →
Всего голосов 52: ↑41 и ↓11+30
Просмотры21K
Комментарии 118

Почему Вы должны попробовать FastAPI?

Python*API*
Из песочницы

image Лого взято из Github репозитория FastAPI


FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hints), нативная асинхронность (asyncio). Помимо всего прочего, FastAPI плотно интегрируется с OpenAPI-schema и автоматически генерирует документацию для вашего API посредством Swagger и ReDoc


FastAPI построен на базе Starlette и Pydantic.
StarletteASGI микро-фреймворк для написания веб-приложений.
Pydantic — библиотека для парсинга и валидации данных основанная на Python type-hints.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Просмотры68K
Комментарии 50

Умеем ли мы готовить Java, Kotlin RestController?

Java*Kotlin*
Из песочницы
Практически любой программист на java в своей жизни писал RestController, но мало кто задумывается правильно ли он это делает. Даже если вы опытный программист, у вас могут возникнуть вопросы, на которые я постараюсь ответить. В статье будут затронуты такие фреймворки как spring boot версии 1.5 и 2.0, а также quarkus — недавно появившийся соперник spring boot от red hat.

image

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Просмотры4.1K
Комментарии 9

Пишем блог на микросервисах – часть 4 сервис «Post»

Блог компании X5 Retail GroupGo*Микросервисы*
Эта статья является продолжением истории написания demo-блога на микросервисах (предыдущие части можно почитать здесь: Часть 1 «Общее описание архитектуры», Часть 2 «API Gateway», Часть 3 «Сервис User»). В этой статье речь пойдет о реализации микросервиса Post (статьи).
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Просмотры2.7K
Комментарии 4

Пишем блог на микросервисах – часть 3 «User»

Блог компании X5 Retail GroupGo*Микросервисы*
Во второй части нашего цикла статей «Пишем блог на микросервисах» мы описали «API Gateway».

Здесь мы опишем реализацию микросервиса User.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Просмотры4K
Комментарии 1

Java/Spring: Как полностью сгенерировать CRUD REST API с помощью Speedment

Java*API*
Перевод
Tutorial
В этой статье вы узнаете, как с помощью Speedment создать полный CRUD REST API для базы данных.



С каждым годом становится все очевиднее, что Spring Framework является одним из наиболее широко используемых фреймворков для веб-разработки на Java.

С приближением следующего десятилетия самый популярный модуль Spring, Spring Boot, только что получил серьезное обновление. Новая версия Spring Boot «2.2.0» и 2020 год почти идеально подходят друг другу. Поэтому команда разработки Speedment восполнила пробел, обновив плагин для Spring Boot.

Если вы впервые слышите о Speedment, вы получите удовольствие, так как мы покажем, как плагин Speedment Spring Boot позволяет разработчикам без особых усилий создавать Spring приложения баз данных с помощью Speedment, ORM с мощным интерфейсом запросов на основе Stream API.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Просмотры6.5K
Комментарии 2

Vue для самых маленьких a.k.a небольшой блог по всем канонам

Разработка веб-сайтов*VueJS*


Всем привет! В данной статье рассмотрим разработку фронта простенького блога на Vue с использованием всех прелестей Vue включая Vuex и Router. А также поговорим про структуру приложения и работу с контейнером и роутером.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Просмотры21K
Комментарии 29

Введение в REST API — RESTful веб-сервисы

API*
Перевод
Tutorial
Эта статья начинает серию постов о разработке REST API:


Она содержит введение в RESTful веб-сервисы и краткий обзор REST и HTTP.


Intro to RESTful Web Services
Читать дальше →
Всего голосов 15: ↑8 и ↓7+1
Просмотры339K
Комментарии 12

Различия REST и SOAP

API*
Перевод
Tutorial
Эта вторая статья в серии постов о разработке REST API:


В этой статье рассматриваются некоторые аспекты основных различий между REST и SOAP.

Упс… на самом деле, сравнивать их немного похоже на сравнение яблок с апельсинами, поскольку SOAP — это формат протокола, основанный на XML, тогда как REST — это архитектурный подход.


Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Просмотры223K
Комментарии 6

Разработка REST API — что такое Code First подход?

API*
Перевод
Tutorial
Это четвертая статья в серии статей по REST API:


В этой статье мы продолжим знакомство с разработкой REST API и рассмотрим подход Code-First.

Разработка хорошего REST API важна для того, чтобы иметь хорошие микросервисы. Подход Code-First фокусируется на генерации контракта из кода. Это наилучший из возможных подходов?


Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Просмотры23K
Комментарии 2

REST API — Что такое HATEOAS?

API*
Перевод
Это пятая статья в серии статей про REST API:


В этой статье вы продолжите изучать REST API и узнаете о HATEOAS.

При просмотре веб-страницы вы можете просматривать данные на странице и выполнять с ними действия.

Как насчет REST API? Как правило, когда вы запрашиваете REST ресурс, вы получаете информацию о ресурсе обратно. Как насчет отправки операций, которые вы можете сделать с ресурсом в ответе?


Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Просмотры36K
Комментарии 26

Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring

Java*API*
Перевод
Tutorial
Это последняя статья из серии статей про REST API:


В этой статье вы познакомитесь с рекомендациями по REST API и с примерами разработки из Java и Spring Web Services.

При разработке хорошего REST API важно иметь хорошие микросервисы.
Как вы разрабатываете свой REST API? Каковы лучшие практики?


Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Просмотры48K
Комментарии 1

REST API должен основываться на гипертексте

IT-стандарты*История IT
Перевод
image

– И вы ему поверили? – с упреком сказал уполномоченный по копытам. – Ну, как вы думаете, разве я без вашего разрешения взял бы эти гири?

– Так это вы взяли гири? – закричал Остап. – Зачем же?

– Паниковский сказал, что они золотые.

Остап посмотрел на Паниковского. Только сейчас он заметил, что под его пиджаком нет уже полтинничной манишки и оттуда на свет божий глядит голая грудь. Не говоря ни слова, великий комбинатор свалился на стул. Он затрясся, ловя руками воздух. Потом из его горла вырвались вулканические раскаты, из глаз выбежали слезы, и смех, в котором сказалось все утомление ночи, все разочарование в борьбе с Корейко, так жалко спародированной молочными братьями.

Этим фрагментом из классики я хотел бы предварить перевод блог-поста Роя Т. Филдинга REST APIs must be hypertext-driven. Отдельное спасибо habr.com/users/arthuriantech за ссылку на материал.

Эта неделя на Хабре ознаменовалась как неделя REST(Full) API. Меня в этом смысле всегда смущало наличие приставки REST в этом термине. И, как оказалась, не одного меня. Сегодня я прочитаю сам и предлагаю всем желающим узнать что об этом думал Рой Т. Филдинг в 2008 году. Конечно, кто-то нервно заерзает на стулке и скажет: передайте Рою, Беня знает за REST API. И тем не менее начнем.
Начнем
Всего голосов 16: ↑10 и ↓6+4
Просмотры6.8K
Комментарии 22

gRPC в качестве протокола межсервисного взаимодействия. Доклад Яндекса

Блог компании ЯндексJava*C++*API*Микросервисы*
gRPC — опенсорсный фреймворк для удаленного вызова процедур. В Яндекс.Маркете gRPC используется как более удобная альтернатива REST. Сергей Федосеенков, который руководит службой разработки инструментов для партнеров Маркета, поделился опытом использования gRPC в качестве протокола для построения интеграций между сервисами на Java и C++. Из доклада вы узнаете, как избежать частых проблем, если вы начинаете использовать gRPC после REST, как возвращать ошибки, реализовать трассировку, отлаживать запросы и тестировать вызовы клиентов. В конце есть неофициальная запись доклада.

— Сначала хотелось бы познакомить вас с некоторыми фактами про Яндекс.Маркет, они будут полезны в рамках доклада. Первый факт: мы пишем сервисы на разных языках. Это накладывает требования по наличию клиентов для сервисов.
Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Просмотры57K
Комментарии 12

Связь между C# и C#: REST, gRPC и все, что между

.NET*ASP*C#*
Перевод
Существует много способов связи между клиентом C# и сервером C#. Некоторые из них надежные, другие нет. Некоторые очень быстрые, другие нет. Важно знать различные варианты, чтобы вы могли решить, что лучше для вас. В этой статье будут рассмотрены самые популярные на сегодняшний день технологии и почему они так широко используются. Мы поговорим о REST, gRPC и всем, что между ними.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Просмотры17K
Комментарии 11

7 трюков с Rest и Spread операторами при работе c JS объектами

Разработка веб-сайтов*JavaScript*
Из песочницы
Привет, Хабр! Представляю вашему вниманию перевод статьи «7 Tricks with Resting and Spreading JavaScript Objects» автора Joel Thoms.

Всем привет, на днях коллега по работе скинул мне ссылку на статью на английском языке в которой перечисляются разные методы работы с rest и spread операторами. Она оказалась мне полезна и я решил её перевести. Итак, начнем.

image
В этой статье вы найдете 7 наименее известных трюков использования rest и spread операторов
Всего голосов 24: ↑22 и ↓2+20
Просмотры14K
Комментарии 10

Взаимодействия. RPC vs REST vs MQ

Анализ и проектирование систем*.NET*Проектирование и рефакторинг*Микросервисы*
Tutorial

По работе мне довелось провести ряд собеседований на позицию Backend-разработчика. Хорошим для оценки архитектурных навыков мне кажется следующий вопрос:


Если вам необходимо спроектировать взаимодействие двух систем, в каких случаях вы выберете RPC, в каких REST, а в каких MQ?


Если ответ на этот вопрос у вас вызывает затруднения, загляните в мой небольшой ЛикБез на тему.

Читать дальше →
Всего голосов 22: ↑11 и ↓110
Просмотры7.6K
Комментарии 27

Java простое веб-приложения. Логин и регистрация

Разработка веб-сайтов*Java*
Из песочницы

Всем доброго времени суток.


Эта статья рассчитана для новичков в мире Web и Java. Мы рассмотрим стандартную архитектуру веб-приложения и сделаем небольшой проект с нуля.


Будем использовать Spring (Огромный фреймворк для веба), но по минимуму. Если не иметь предыдущего опыта использования и сразу пытаться использовать весь функционал, то не будет базового понимания, так как имеется перечень подводных камней.


Что будет делать приложение


Хочу представить короткий и в то же время полезный пример. Он минимально загружен и по итогу вы сможете использовать его как шаблон.


Думая, с чем люди часто должны сталкиваться при разработки веб-приложения, понял что реализация логина и регистрации будет достаточно показательной и полезной.


Исходный код вы сможете найти здесь.

Читать дальше →
Всего голосов 20: ↑13 и ↓7+6
Просмотры14K
Комментарии 20

Как получить OpenID/OAuth2 токен для тестирования front-end rest сервисов?

Тестирование IT-систем*Тестирование веб-сервисов*
Есть задача нагрузочно потестировать фронтальные веб рест апи. Ресты защищены OAuth с Authorization Code Grant. Значит появляется необходимость наличия валидного токена для Authorization: Bearer TOKEN.
Вопрос — как его взять? И так это сделать красиво и правильно? Вот тут я не знаю.

В этой статье я описал то быстрое решение к которому я пришел и которое мне не вполне нравится. Выглядит костыльным, хотя я и не нагуглил ничего серебряного. Поэтому, если вы знаете лучшее решение — обязательно скажите об этом в комментарии… Итак…

Есть обычная типовая система с веб рест фронтом и типовым Single-Page-Application браузерным клиентом на JS. Аутентификация и авторизация — KeyCloak с Authorization Code Grant + brokering.

Надо обеспечить регулярное нагрузочное тестирование фронтовых рест сервисов.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Просмотры4.4K
Комментарии 27