Привет! Меня зовут Максим Соколов, я — аналитик в команде “Управление доступностью товаров и категорий”. В нашей команде была выделена отдельная подгруппа, которая создавалась специально под новый продукт-фичу для селлеров. Сразу стало понятно, что для реализации нового функционала требуется разработка нового микросервиса. Командой разработки было принято решение интегрироваться по gRPC, но мне до конца не было понятно, почему выбор именно такой. И тут я решил разобраться подробнее!
Рубрика «RESTful»
REST vs gRPC. Межсервисная интеграция для начинающих
2024-11-21 в 11:56, admin, рубрики: api, grpc, json, rest, rest api, RESTful, restful api, RPC, микросервисы, системный анализКарсон Гросс, создатель HTMX
2024-05-20 в 9:00, admin, рубрики: ajax, api, HDA, htmx, HTMX 2, HyperCard, Hypermedia-Driven Applications, hyperscript, HyperTalk, json, React, rest, RESTful, ruvds_статьи, SPA, UI, веб 2.0, гипермедицные системы, груг, Карсон Гросс, Рой Филдинг, усталость от JavaScript, фронтенд
Карсон Гросс (Carson Gross) — профессор информатики из Монтаны, который неожиданно стал одним из самых ярких персонажей в индустрии веб-программирования последних лет. Он автор языка HyperScript и популярной библиотеки для фронтенда HTMX, позволяющей создавать сложные интерактивные сайты средствами HTML. Красивая альтернатива клиентскому рендерингу на JavaScript решает сразу несколько проблем современного веба, связанных с избыточной сложностью разработки и поддержки, производительностью и ожирением сайтов.
Создавать сайты очень просто, тот же Хабр написал один программист, а не команда из сотен разработчиков и девопсов, как сейчас принято нанимать в интернет-компании.
Многие веб-разработчики нашего времени выросли со знанием только одностраничных приложений SPA и фреймворков для них. Они начали свои карьеры с приложений на React.js, которые общаются с сервером Node через JSON API. Это настоящая трагедия, считает Гросс. Интерактивные приложения можно делать совершенно иначе.
Читать полностью »
Что не так с OpenAPI?
2023-04-30 в 18:26, admin, рубрики: api, documentation, Microservices, rest api, RESTfulКак мы боролись с документированием API на наших проектах, и как мы немного сошли с ума
У вас на проекте порядок с документацией на API? Скорее всего нет. И в нашей компании порядка не было.
Не будем рассказывать, к каким печальным последствиям приводит ошибочная, устаревшая или вовсе отсутствующая API-документация. Почему же на большинстве проектов не удаётся решить такой, казалось бы, несложный вопрос?
Причина проста: разработчики терпеть не могут описывать APIЧитать полностью »
REST API должен основываться на гипертексте
2020-01-11 в 10:32, admin, рубрики: HATEOAS, IT-стандарты, rest, rest api, RESTful, restful api
– И вы ему поверили? – с упреком сказал уполномоченный по копытам. – Ну, как вы думаете, разве я без вашего разрешения взял бы эти гири?
– Так это вы взяли гири? – закричал Остап. – Зачем же?
– Паниковский сказал, что они золотые.
Остап посмотрел на Паниковского. Только сейчас он заметил, что под его пиджаком нет уже полтинничной манишки и оттуда на свет божий глядит голая грудь. Не говоря ни слова, великий комбинатор свалился на стул. Он затрясся, ловя руками воздух. Потом из его горла вырвались вулканические раскаты, из глаз выбежали слезы, и смех, в котором сказалось все утомление ночи, все разочарование в борьбе с Корейко, так жалко спародированной молочными братьями.
Этим фрагментом из классики я хотел бы предварить перевод блог-поста Роя Т. Филдинга REST APIs must be hypertext-driven. Отдельное спасибо habr.com/users/arthuriantech за ссылку на материал.
Эта неделя на Хабре ознаменовалась как неделя REST(Full) API. Меня в этом смысле всегда смущало наличие приставки REST в этом термине. И, как оказалась, не одного меня. Сегодня я прочитаю сам и предлагаю всем желающим узнать что об этом думал Рой Т. Филдинг в 2008 году. Конечно, кто-то нервно заерзает на стулке и скажет: передайте Рою, что Беня знает за REST API. И тем не менее начнем.
Читать полностью »
REST API — Что такое HATEOAS?
2020-01-10 в 8:47, admin, рубрики: api, java, rest, RESTful, web-servicesВ этой статье вы продолжите изучать REST API и узнаете о HATEOAS.
При просмотре веб-страницы вы можете просматривать данные на странице и выполнять с ними действия.
Как насчет REST API? Как правило, когда вы запрашиваете REST ресурс, вы получаете информацию о ресурсе обратно. Как насчет отправки операций, которые вы можете сделать с ресурсом в ответе?
Читать полностью »
Обсуждение: PostgREST — из базы данных в RESTful API
2019-11-30 в 17:44, admin, рубрики: 1cloud, api, postgrest, RESTful, Блог компании 1cloud.ru, Разработка веб-сайтовРассказываем об инструменте, который позволяет настроить API для работы с запросами PostgreSQL. Говорим о возможностях, достоинствах и недостатках утилиты, а также об альтернативных решениях.
Обсуждаем PostgREST — open source веб-сервер на Haskell
2019-11-30 в 17:44, admin, рубрики: 1cloud, api, postgrest, RESTful, Блог компании 1cloud.ru, Разработка веб-сайтовРассказываем об инструменте, который позволяет настроить API для работы с запросами PostgreSQL. Говорим о возможностях, достоинствах и недостатках утилиты, а также об альтернативных решениях.
Что можно делать с аннотациями контрактов микросервисов?
2019-10-10 в 6:19, admin, рубрики: OAS, RAML, rest, RESTful, Swagger. микросервисы, аннотации, Блог компании Acronis, микросервисыВ прошлом посте мы рассказывали о том, как и почему мы в Acronis делаем аннотации к микросервисам, и обещали поделиться своей практикой применения единого формата API для всей платформы Acronis Cyber Platform. Сегодня мы расскажем про свой опыт статических проверок аннотаций – aka первый шаг на пути внедрения аннотаций в компании.
Достраиваем в RESTinio четвертый этаж из C++ных шаблонов. Зачем и как?
2019-06-19 в 8:16, admin, рубрики: c++, c++ библиотеки, C++14, open source, RESTful, RESTful HTTP, restinio, ПрограммированиеRESTinio — это относительно небольшой проект, представляющий из себя встраиваемый в C++приложения асинхронный HTTP-сервер. Его характерной особенностью является широкое, можно сказать, повсеместное применение C++ных шаблонов. Как в реализации, так и в публичном API.
C++ные шаблоны в RESTinio используются настолько активно, что первая статья, которая рассказывала о RESTinio на Хабре, называлась "Трехэтажные C++ные шаблоны в реализации встраиваемого асинхронного HTTP-сервера с человеческим лицом".
Трехэтажные шаблоны. И это, в общем-то, была не фигура речи.
А недавно мы в очередной раз обновили RESTinio и для добавления новой функциональности в версию 0.5.1 пришлось сделать "этажность" шаблонов еще выше. Так что местами C++ные шаблоны в RESTinio уже четырехэтажные.
И если кому-то интересно зачем нам такое потребовалось и как мы шаблоны использовали, то оставайтесь с нами, под катом будет немного подробностей. Матерые C++ гуру вряд ли найдут для себя что-нибудь новое, а вот менее продвинутые C++ники смогут посмотреть на то, как шаблоны применяются для вставки/изъятия кусков функциональности. Почти что в "дикой природе".
RESTinio — это асинхронный HTTP-сервер. Асинхронный
2019-05-14 в 12:08, admin, рубрики: c++, c++ библиотеки, C++14, open source, RESTful, RESTful HTTP, restinio, ПрограммированиеПару лет назад мы опубликовали RESTinio — свой небольшой OpenSource C++фреймворк для встраивания HTTP-сервера в C++ приложения. Мегапопулярным за это время RESTinio не стал, но и не потерялся. Кто-то выбирает его за "родную" поддержку Windows, кто-то за какие-то отдельные фичи (вроде поддержки sendfile), кто-то за соотношение возможностей, простоты использования и настраиваемости. Но, думаю, изначально многих RESTinio привлекает вот этим лаконичным "Hello, World"-ом:
#include <restinio/all.hpp>
int main()
{
restinio::run(
restinio::on_this_thread()
.port(8080)
.address("localhost")
.request_handler([](auto req) {
return req->create_response().set_body("Hello, World!").done();
}));
return 0;
}
Это, действительно, все, что нужно чтобы запустить HTTP-сервер внутри C++ приложения.
И хотя мы всегда стараемся говорить, что ключевой фичей, ради которой мы вообще занялись RESTinio, была асинхронная обработка входящих запросов, все равно периодически сталкиваемся с вопросами о том, как быть, если внутри request_handler-а приходится выполнять длительные операции.
А раз такой вопрос актуален, то можно еще раз о нем поговорить и привести парочку небольших примеров.