Рубрика «api» - 35

REST страсти по 200 - 1

Давно я хотел написать эту статью. Все думал — с какой стороны зайти правильнее? Но, вдруг, недавно, на Хабре появилась подобная статья, которая вызвала бурю в стакане. Больше всего меня удивил тот простой факт, что статью начали вбивать в минуса, хотя она даже не декларировала что-то, а скорее просто поднимала вопрос об использовании кодов ответа web-сервера в REST. Дебаты разгорелись жаркие. А апофеозом стало то, что статья ушла в черновики… килобайты комментариев, мнений и т.д. просто исчезли. Многие стали кармо-жертвами, считай, ни за что :)

В общем, именно судьба той статьи побудила меня написать эту. И я очень надеюсь, что она будет полезна и прояснит многое.

Предупреждаю, все ниже написанное является реальным опытом, а не когнитивной эквилибристикой. И так, погнали.
Читать полностью »

Google не будет блокировать сторонние блокировщики рекламы в браузере Chromium - 1

Компания Google всё-таки вспомнила принцип Don'y be evil и отказалась от планируемых изменений в API браузера Chromium, из-за которых становилась нефункциональными большинство блокировщиков рекламы и некоторые другие расширения.

Решение принято после публикации исследования, насколько разные блокировщики рекламы замедляют работу Chromium (см. выше). Оказалось, что эти задержки настолько мизерные, что их вряд ли можно считать причиной для введения нового API. Через несколько часов после появления этого один из разработчиков Chromium официально огласил решение отложить новые API.
Читать полностью »

Почему мы используем GraphQL в 8base - 1

Друзья, всем привет!

Эта статья в первую очередь будет интересна фронтенд-разработчикам, особенно тем кому актуальна тема GraphQL, но в то же время я надеюсь, что она будет полезна и бэкенд-разработчикам и поможет им понять преимущества GraphQL глазами фронтендера.
Читать полностью »

Приключения с ptrace(2) - 1 На Хабре уже писали про перехват системных вызовов с помощью ptrace; Алекса написал про это намного более развёрнутый пост, который я решил перевести.


С чего начать

Общение между отлаживаемой программой и отладчиком происходит при помощи сигналов. Это существенно усложняет и без того непростые вещи; ради развлечения можете прочесть раздел BUGS в man ptrace.

Есть как минимум два разных способа начать отладку:

  1. ptrace(PTRACE_TRACEME, 0, NULL, NULL) сделает родителя текущего процесса отладчиком для него. Никакого содействия от родителя при этом не требуется; man ненавязчиво советует: «A process probably shouldn't make this request if its parent isn't expecting to trace it.» (Где-нибудь ещё в манах вы видели фразу «probably shouldn't»?) Если у текущего процесса уже был отладчик, то вызов не удастся.
  2. ptrace(PTRACE_ATTACH, pid, NULL, NULL) сделает текущий процесс отладчиком для pid. Если у pid уже был отладчик, то вызов не удастся. Отлаживаемому процессу шлётся SIGSTOP, и он не продолжит работу, пока отладчик его не «разморозит».

Эти два метода полностью независимы; можно пользоваться либо одним, либо другим, но нет никакого смысла их сочетать.Читать полностью »

Давайте попробуем написать небольшую тренировочную, но вполне себе законченную информационную систему, состоящую из серверной части на Go и клиентского веб-приложения на Javascript + Vue JS.

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

  • Деньги съедает инфляция (инфляционный риск)
  • Рубль может обесцениться (курсовой риск)

Было принято решение изучить вопрос и выбрать подходящий инструмент для инвестирования. Основными критериями были надёжность и защита сбережений от указанных выше рисков.
Вопрос я изучил и в результате пришёл к выводу, что единственным адекватным инвестиционным инструментом для жителя России являются акции биржевых фондов (ETF), причём именно те, что торгуются на Московской Бирже.

Таким образом, предлагаю написать учебное приложение, которое бы показывало доходность всех ETF, которые представлены на Московской Бирже.
Читать полностью »

В этой трехминутной статье я хочу затронуть наболевшую тему.

Речь пойдет о статус коде HTTP 200 и ошибках в ответе.

HTTP/1.1 200 OK

{
  "error": {
    code: 2019,
    message: "Validation failed: field 'size' is invalid: the value is not a number"
  }
}

Нормально ли возвращать такой код, если возникла ошибка?

Нет? Да? Ну-ка давайте разберемся.

whaaat

Случай 1. HTTP 200 и batch операция

Допустим отправляется один запрос. Запрос выполняется успешно. Возвращаем код 200. Ответ не содержит информации об ошибке. С этим случаем всё предельно просто и понятно. А что делать если требуется выполнить batch операцию?
Читать полностью »

io_submit: альтернатива epoll, о которой вы никогда не слышали - 1

Недавно внимание автора привлекла статья на LWN о новом интерфейсе ядра для опроса (polling). В ней обсуждается новый механизм опроса в Linux AIO API (интерфейс для асинхронной работы с файлами), который добавили в ядро версии 4.18. Идея довольно интересная: автор патча предлагает использовать Linux AIO API для работы с сетью.

Но постойте! Ведь Linux AIO был создан для работы с асинхронным вводом-выводом с диска / на диск! Файлы на диске — это не то же самое, что сетевые соединения. Возможно ли вообще использовать Linux AIO API для работы с сетью?

Оказывается, да, возможно! В этой статье объясняется, как использовать сильные стороны Linux AIO API для создания более быстрых и лучших сетевых серверов.

Но давайте начнём с разъяснения, что представляет собой Linux AIO.
Читать полностью »

Новые GSM шлюзы от OpenVox - 1
Asterisk — потрясающий конструктор. Хотите построить небольшую АТС для бизнеса? Берем Raspberry PI, накатываем готовый образ на флешку, 10 минут, и вы уже вбиваете логин с паролем на ваш SIP телефон и делаете первый звонок.

Хотите нечто большее? Ставим бесплатный и навороченный FreePBX Distro, заводим пользователей, добавляем нужные модули, и получается тоже вполне себе рабочий вариант.

А если у вашей компании есть деньги, вы можете выбрать для себя одну из многих платных коммерческих разработок на Asterisk: Welltime, Switchvox, Askozia или аппаратную АТС компаний Grandstream, Yeastar, Zycoo и так далее.

Вы идеальная компания, если можете использовать только SIP протокол как для внешних линий, так и для внутренних подключений. На практике не всегда удается полностью отказаться от аналоговых линий, E1 потока или сим-карт.

Программное обеспечение с открытым исходным кодом позволяет создавать недорогие и функциональные решения. И сегодня я хотел бы рассказать вам о новых шлюзах китайской компании OpenVox

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

Play Store теперь принимает прогрессивные веб-приложения (PWA) - 1

Дисклеймер: я не связан с Google Play, Chrome или любой упомянутой компанией. Это не официальное заявление. Логотип и названия используются только для иллюстрации.

В Chrome 72 для Android реализована долгожданная функция Trusted Web Activity. Это означает, что теперь мы можем распространять PWA через каталог Google Play и запускать Chrome без UI в автономном режиме для нативных пакетов! Я некоторое время поигрался с этой функцией, копаясь в API, а здесь расскажу, о чём речь, чего ожидать и что доступно уже сегодня.
Читать полностью »

Всем привет! Друзья, уже 21 февраля у нас стартует курс «Backend разработчик на PHP». В преддверии запуска курса хотим поделиться с вами переводом одного интересного материала. Приятного прочтения!

В октябре на конференции NGINX Conf 2018 мы анонсировали новый модуль управления API для контроллера NGINX. С этим продуктом мы укрепляем свои позиции в качестве самого развернутого шлюза API в отрасли — миллионы сайтов уже используют NGINX Open Source и NGINX Plus для обеспечения безопасной передачи трафика между серверными приложениями и потребителями API, предоставляемыми этими приложениями.

Но эффективная обработка клиентских запросов — это только один аспект успешного API (хотя и крайне важный). Вам также необходимо управлять своими API-интерфейсами на протяжении всего их жизненного цикла, включая их определение и публикацию, а также защиту и управление трафиком. Вам необходимо отслеживать и устранять неполадки производительности, чтобы гарантировать удовлетворенность клиентов, и анализировать трафик, чтобы максимизировать ценность для бизнеса. Комплексное управление API имеет важное значение для быстрого принятия и дальнейшего успеха ваших API.Читать полностью »


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