Рубрика «RESTful»

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

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

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

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

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

Эта неделя на Хабре ознаменовалась как неделя REST(Full) API. Меня в этом смысле всегда смущало наличие приставки REST в этом термине. И, как оказалась, не одного меня. Сегодня я прочитаю сам и предлагаю всем желающим узнать что об этом думал Рой Т. Филдинг в 2008 году. Конечно, кто-то нервно заерзает на стулке и скажет: передайте Рою, что Беня знает за REST API. И тем не менее начнем.
Читать полностью »

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

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

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

Рассказываем об инструменте, который позволяет настроить API для работы с запросами PostgreSQL. Говорим о возможностях, достоинствах и недостатках утилиты, а также об альтернативных решениях.

Обсуждение: PostgREST — из базы данных в RESTful API - 1Читать полностью »

Рассказываем об инструменте, который позволяет настроить API для работы с запросами PostgreSQL. Говорим о возможностях, достоинствах и недостатках утилиты, а также об альтернативных решениях.

Обсуждаем PostgREST — open source веб-сервер на Haskell - 1Читать полностью »

В прошлом посте мы рассказывали о том, как и почему мы в Acronis делаем аннотации к микросервисам, и обещали поделиться своей практикой применения единого формата API для всей платформы Acronis Cyber Platform. Сегодня мы расскажем про свой опыт статических проверок аннотаций – aka первый шаг на пути внедрения аннотаций в компании.

Что можно делать с аннотациями контрактов микросервисов? - 1
Читать полностью »

RESTinio — это относительно небольшой проект, представляющий из себя встраиваемый в C++приложения асинхронный HTTP-сервер. Его характерной особенностью является широкое, можно сказать, повсеместное применение C++ных шаблонов. Как в реализации, так и в публичном API.

C++ные шаблоны в RESTinio используются настолько активно, что первая статья, которая рассказывала о RESTinio на Хабре, называлась "Трехэтажные C++ные шаблоны в реализации встраиваемого асинхронного HTTP-сервера с человеческим лицом".

Трехэтажные шаблоны. И это, в общем-то, была не фигура речи.

А недавно мы в очередной раз обновили RESTinio и для добавления новой функциональности в версию 0.5.1 пришлось сделать "этажность" шаблонов еще выше. Так что местами C++ные шаблоны в RESTinio уже четырехэтажные.

Достраиваем в RESTinio четвертый этаж из C++ных шаблонов. Зачем и как? - 1

И если кому-то интересно зачем нам такое потребовалось и как мы шаблоны использовали, то оставайтесь с нами, под катом будет немного подробностей. Матерые C++ гуру вряд ли найдут для себя что-нибудь новое, а вот менее продвинутые C++ники смогут посмотреть на то, как шаблоны применяются для вставки/изъятия кусков функциональности. Почти что в "дикой природе".

Читать полностью »

Пару лет назад мы опубликовали 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-а приходится выполнять длительные операции.

А раз такой вопрос актуален, то можно еще раз о нем поговорить и привести парочку небольших примеров.

Читать полностью »

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

Java REST в Школе Программистов HeadHunter - 1

Читать полностью »

image

Всем привет, меня зовут Семен Левенсон, я работаю teamlead’ом на проекте «Поток» от Rambler Group и хочу рассказать о нашем опыте использования Apollo.

Объясню, что такое «Поток». Это автоматизированный сервис для предпринимателей, позволяющий привлекать клиентов из Интернета в бизнес, не вовлекаясь в рекламу, и быстро создавать простые сайты, не являясь экспертом в верстке.

Читать полностью »

С учетом роста данных в наше время все чаще говорится о программно-определяемых и распределенных хранилищах данных, причем немало внимания традиционно уделяется открытой платформе Сeph. Сегодня мы хотим рассказать о тех выводах, к которым мы пришли в процессе реализации проекта по хранению данных для одного крупного российского ведомства.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js