Обновить
28.49

Проектирование API *

О создании API

Сначала показывать
Порог рейтинга
Уровень сложности

Чат-бот для Вконтакте на ASP.NET Core C#

Время на прочтение5 мин
Охват и читатели64K

В данной статье представлен пошаговый пример создания простого чат-бота в социальной сети VK на ASP.NET Core C#.


Глава 1. Подготовка


Начнем с создания и настройки сообщества.


Читать дальше →

Унифицированные сервисы goszakup.gov.kz — Версия 2

Время на прочтение5 мин
Охват и читатели14K
Я работаю разработчиком в компании АО «Центр Электронных Финансов».
Один и наших проектов — портал Государственных закупок Республики Казахстан — goszakup.gov.kz.

Год назад мы запустили большой проект — Унифицированные сервисы (OpenData).
Для реализации была использована методология RestAPI.

Сегодня я расскажу о новой версии наших сервисов и новом интерфейсе работы с ними.


Читать дальше →

Разработчик, помни — трафик твоего приложения смотрят

Время на прочтение3 мин
Охват и читатели15K
WOG

На данный момент существует так много типов уязвимостей, что разработчики совсем забывают об элементарных из них. На днях мне удалось обойти авторизацию в новом приложении WOG (ТОВ «ВОГ РІТЕЙЛ» — вторая по величине сеть АЗС в Украине). В 2017 году, точно такую же уязвимость я обнаружил в приложении одного из мобильных провайдеров Украины (тоже второго по величине). Идентичные ситуации — новое приложение и отсутствие защиты от брутфорса.
Читать дальше →

Как минимизировать ошибки при интеграции с внешними сервисами: опыт онлайн-брокера

Время на прочтение6 мин
Охват и читатели6.7K
За полтора года мы интегрировались по API с двадцатью внешними сервисами. Первые пять интеграций прошли через боль и слезы — мы допустили все возможные ошибки. По несколько раз переписывали код, расставались с партнерами перед самым релизом, потому что не смогли договориться о доработках. Теряли время и деньги.

Но при каждой новой интеграции мы придумывали решения для повторяющихся проблем. В результате последнюю интеграцию мы сделали в четыре раза быстрее, чем первую. Что теперь мы делаем иначе — читайте в статье.
Читать дальше →

Как обеспечить доступность веб-сервиса в облаке при отказе дата-центра

Время на прочтение7 мин
Охват и читатели2.6K
В статье описывается вариант обеспечения доступности развернутого в облаке веб-сервиса при возникновении сбоев в работе дата-центра. Предлагаемое решение основано на компромиссе, состоящем в частичном дублировании: в другом дата-центре разворачивается резервная система, которая может работать в режиме ограниченной функциональности при недоступности основного ЦОДа. Данная схема в первую очередь нацелена на применение при кратковременных сбоях, но также предусматривает возможность быстрого превращения дублирующей системы в основную в случае масштабных проблем.


Читать дальше →

Мягкое удаление в REST API

Время на прочтение5 мин
Охват и читатели17K
image

Чтобы пользователь не чувствовал боли от безвозвратно утерянных данных, стоит задуматься о мягком удалении. При мягком удалении запись не удаляется из базы физически, а лишь помечается как удалённая. Это позволяет легко восстановить данные путём сброса флага.

Недавно я реализовал мягкое удаление в одном из наших REST-сервисов. Тех, кому интересно, что у меня получилось, приглашаю под кат.
Читать дальше →

REST страсти по 200

Время на прочтение8 мин
Охват и читатели45K


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

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

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

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

Время на прочтение3 мин
Охват и читатели13K


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

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

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

Время на прочтение4 мин
Охват и читатели7K


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

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

Приключения с ptrace(2)

Время на прочтение5 мин
Охват и читатели8.4K
На Хабре уже писали про перехват системных вызовов с помощью 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, и он не продолжит работу, пока отладчик его не «разморозит».

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

200 — это хорошо или это плохо?

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

Речь пойдет о статус коде 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 операцию?
Давай разберемся

Видеозапись QA Meetup

Время на прочтение2 мин
Охват и читатели3.1K


Привет, Хабр! Публикуем видеозапись с первого QA Meetup в Алматы – встречи для мобильных и веб-тестировщиков. Говорили про инструменты и особенности мобильного тестирования, оптимизацию и стабилизацию автоматического веб-тестирования.

Под катом — делимся видео и презентациями докладчиков.
Читать дальше →

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

Время на прочтение15 мин
Охват и читатели40K

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

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

Ближайшие события

Что такое управление API?

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

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



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

BotMan знакомство

Время на прочтение2 мин
Охват и читатели14K
Хочу рассказать о PHP фреймворке для создания ботов BotMan (Сайт). Botman можно использовать и как библиотеку, и как расширение Laravel (BotMan Studio).

Читать дальше →

Как мы делали мониторинг сети на 14 000 объектов

Время на прочтение15 мин
Охват и читатели34K
У нас было 14 000 объектов, zabbix, api, python и нежелание добавлять объекты руками. Под катом — о том, как сетевиками внедрялся мониторинг с автоматическим добавлением узлов сети, и немного про боль, через которую пришлось пройти.

Статья больше ориентирована на сетевых инженеров с небольшим опытом в python. В помощь при автоматизации мониторинга и улучшения качества жизни и работы, в отсутствии необходимости руками актуализировать весь парк объектов.


Читать дальше →

Piter GraphQL: видеозаписи с митапа в Wrike

Время на прочтение1 мин
Охват и читатели4.8K


24 января в офисе Wrike прошел первый в Петербурге митап по GraphQL. Чтобы разобраться в жизнеспособности хайповой технологии мы, во-первых, суммировали результаты своих исследований в этой теме, во-вторых, позвали в гости Павла Черторогова, опенсорс-мейнтейнера, который с конца 2015 года разрабатывает изоморфные приложения. Летом 2016 Павел начал разработку graphql-compose в опенсорсе.

Для тех, кто не смог прийти, мы публикуем видеозаписи докладов.
Смотреть

Ботоводство

Время на прочтение7 мин
Охват и читатели16K


С начала 2000-х годов с завидной периодичностью появляются новости о внедрении в работу чат-ботов. В этой статье я расскажу с чего начать и приведу обзор существующих решений, а также поделюсь опытом создания бота для компании Selectel.

Сфера применения


Развитие бизнеса зачастую сопровождается не только масштабированием основной деятельности, но и отладкой поддерживающих процессов. Чат-боты — только часть деятельности бизнеса в рамках автоматизации рутины. Коммуникация и выполнение простых однотипных заданий лежат в основе работы чат-бота. С его помощью можно выполнять не только повторяющиеся задачи, но и такие, которые человек выполнить не в состоянии, например, мониторинг активности в социальных сетях.
Читать дальше →

От новых API в Chromium пострадает не только uBlock Origin, но и другие расширения

Время на прочтение3 мин
Охват и читатели12K
Три месяца разработчики Chromium обсуждают новые программные интерфейсы declarativeNetRequest API, лишающие возможности полноценно использовать webRequest API. Расширения используют данные API для блокировки контента на лету во время загрузки страницы. В новой системе блокировщики не cмогут блокировать события, а только просматривать их. Вместо этого расширениям предлагают перейти на declarativeNetRequest API — и сообщать браузеру о тех событиях, которые они хотят заблокировать. Это якобы должно ускорить загрузку страниц в браузере (потому что расширения больше не будут тормозить основной поток), а также защитит приватность пользователей, по мнению Google.

Первым поднял тревогу Реймонд Хилл, автор uBlock Origin и uMatrix. Он заявил, что его расширения для блокировки рекламы «не смогут существовать», если будут приняты изменения.

Позже пессимизм высказали разработчики других расширений, в том числе F-Secure, NoScript и Ermes Cyber Security. Например, NoScript для Firefox никак не получится перенести на Chrome.
Читать дальше →

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 1)

Время на прочтение11 мин
Охват и читатели4.8K

Язык R на сегодняшний день является одним из мощнейших и многофункциональных инструментов для работы с данными, но как мы знаем практически всегда, в любой бочке мёда найдётся ложка дёгтя. Дело в том, что R по умолчанию является однопоточным.


Скорее всего достаточно длительное время вас это не будет беспокоить, и вы вряд ли будете задаваться этим вопросом. Но к примеру если вы столкнулись с задачей сбора данных из большого количества рекламных аккаунтов из API, например Яндекс.Директ, то вы значительно, как минимум в два — три раза, можете сократить время на сбор данных используя многопоточность.


image

Читать дальше →

Вклад авторов