Все потоки
Поиск
Написать публикацию
Обновить
37.58

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

О создании API

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

«Boost.Asio C++ Network Programming». Глава 5: Синхронное против асинхронного

Время на прочтение19 мин
Количество просмотров33K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming».

Содержание:


Авторы Boost.Asio сделали замечательную работу, давая нам возможность выбрать то, что больше удовлетворяет нашим приложениям, выбрав синхронный или асинхронный путь.
В предыдущей главе мы видели каркасы для всех типов приложений, таких как синхронный клиент, синхронный сервер, а так же их асинхронные варианты. Вы можете использовать каждый из них в качестве основы для вашего приложения. Если же возникнет необходимость вникать в подробности о каждом типе приложения, то читаем дальше.

Будет интересно

AlfabankAPI для работы с Альфа-Клиент On-line

Время на прочтение3 мин
Количество просмотров25K
Как и у многих, в один прекрасный день появилась идея автоматизировать бизнес процессы в своей организации. Так или иначе автоматизировать можно всё и бесконечно долго, но задача по работе с банком показалась наиболее важной и интересной. Перед началом исследования стоит предъявить требования к необходимому API с помощью которого мы ходим общаться с банком. На первом этапе неплохо было бы установить соединение с банком, получить текущий баланс и список операций по счёту на указанный период.
Подробности

Мой опыт знакомства с BrainTree

Время на прочтение6 мин
Количество просмотров27K
image
Итак, началось все с того, что на работе к проекту понадобилось прикрутить систему оплаты BrainTree. Поискав на русскоязычных сайтах инструкцию как это сделать, я понял, что придется во всем разбираться самому.
Читать дальше →

Голосовой поиск «по-русски»

Время на прочтение1 мин
Количество просмотров31K
Yandex SpeechKitВсем привет. Технологии развиваются очень быстро, и очень приятно, что не только за рубежом.
Компания «Яндекс» представила свою разработку, а именно мультиплатформенную библотеку, которая даёт доступ разработчикам к собственной технологии распознавания речи — SpeechKit.
Более подробная информация далее…
Далее?

«Boost.Asio C++ Network Programming». Глава 4: Клиент и Сервер

Время на прочтение12 мин
Количество просмотров73K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming».

Содержание:


В этой главе мы собираемся углубиться в создание нетривиальных клиент/серверных приложений с использованием Boost.Asio. Вы можете запускать и тестировать их, и как только вы разберетесь в них, вы сможете использовать их как основу для создания собственных приложений.

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

«Boost.Asio C++ Network Programming». Глава 3: Эхо сервер/клиент

Время на прочтение9 мин
Количество просмотров70K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming».

Содержание:


В этой главе мы реализуем небольшое клиент/серверное приложение, которое, вероятно, будет самым простым клиент/серверным приложением. Это приложение эхо-сервер, который возвращает клиенту то, что тот ему написал, а затем закрывает соединение клиента. Сервер может работать с любым числом клиентов. Когда подключается новый клиент, он шлет сообщение. Сервер получает сообщение целиком и посылает его обратно. После этого он закрывает соединение.
Таким образом, каждый эхо-клиент подключается к серверу, посылает сообщение и читает то, что ответил сервер, убедившись, что это то же сообщение, которое он послал, заканчивает общение с сервером.
Сначала мы будем реализовывать синхронное приложение, а затем асинхронное, так что вы можете легко их сравнить:



Здесь будет приводиться не весь код целиком, а только его части, весь код можно посмотреть по ссылке в конце статьи.
Читать дальше →

«Boost.Asio C++ Network Programming». Глава 2: Основы Boost.Asio. Часть 2

Время на прочтение15 мин
Количество просмотров70K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming». В этой части второй главы мы поговорим про асинхронное программирование.

Содержание:


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

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

Feedly открыл API для всех RSS-клиентов

Время на прочтение1 мин
Количество просмотров11K
До настоящего времени инфраструктура Feedly работала примерно с 50 RSS-приложениями, но теперь компания снимает всякие ограничения и открывает API для всех разработчиков.



Любой RSS-ридер или мобильное приложение может использовать бэкенд Feedly для доступа к миллионам фидов и синхронизации через Cloud API.
Читать дальше →

2ГИС — отдельно, спамеры — отдельно

Время на прочтение3 мин
Количество просмотров72K
Негласным лозунгом 2ГИС можно сделать «От забора и до обеда». Он очень точно отражает то, что у нас есть — вся полезная информация о городе. Для одних пользователей это могут быть заборы, для других — точное время работы, для третьих — что-то ещё.

За то, что мы актуальны, точны и знаем практически всё о компаниях, нас и любят. К сожалению, не у всех эта любовь является искренней. Есть пользователи, которые решили, что 2ГИС можно использовать в своих корыстных целях и во вред другим. Нас это не устраивает, поэтому мы решили если не покончить с этим, то сделать жизнь таких пользователей максимально сложной.

Речь, конечно же, о спамерах. Под катом небольшая история про исчезновение адресов e-mail в онлайн-версии, API и то, что будет дальше.

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

RESTful API на Node.js + MongoDB

Время на прочтение16 мин
Количество просмотров260K
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в backend-сервисах для хранения пользовательских данных, авторизации и прочего. Конечно, для подобных задач можно использовать BaaS (Parse, Backendless, etc…). Но свое решение — это всегда более удобно и практично.

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

В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.

Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!

Содержание

  1. Node.js + Express.js, простой web-сервер
  2. Error handling
  3. RESTful API endpoints, CRUD
  4. MongoDB & Mongoose.js
  5. Access control — OAuth 2.0, Passport.js

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

«Boost.Asio C++ Network Programming». Глава 2: Основы Boost.Asio. Часть 1

Время на прочтение20 мин
Количество просмотров122K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming». Вторая глава получилась большая, поэтому разобью ее на две части. В этой части мы поговорим именно про основы Boost.Asio, а во второй части речь пойдет про асинхронное программирование.

Содержание:


В этой главе мы рассмотрим то, что вам обязательно знать, используя Boost.Asio. Мы углубимся в асинхронное программирование, которое намного сложнее, чем синхронное и гораздо более интересное.

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

API сервисы Mangomag.ru

Время на прочтение7 мин
Количество просмотров11K
В данной статье речь пойдет о развитии API сервисов нашего сайта — их плюсах и минусах, а так же тех проблемах, с которыми мы столкнулись в процессе работы по их встраиванию и улучшению.

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

Список API, о которых и пойдет речь:

1) Сервис перевода с китайского и английского на русский;
2) API Ebay;
3) API Amazon;
4) API Taobao;
5) API Aliexpress;
6) Сервис отслеживания посылок.
Читать дальше →

A1 Pay прекращает предоставлять услуги физлицам

Время на прочтение2 мин
Количество просмотров14K
imageПеред каждым разработчикои (да и обычным вебмастером) хотя бы раз в жизни возникает вопрос: «Как монетизировать свой проект?» И каждый из нас окунается с головой в поисковые системы в поисках качественного оператора, предоставляющего подобные услуги.

В качестве SMS-биллинга многие останавливают свой выбор на компании «A1 Pay». Выбор был очевиден. 12-летний опыт стабильной работы, богатый API, легкое подключение, очень широкий выбор коротких номеров, работа с банковскими картами и самыми популярными платежными системами…

Сегодня система A1Pay провела печальную Email рассылку среди своих абонентов.
Читать дальше →

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

«Boost.Asio C++ Network Programming». Глава 1: Приступая к работе с Boost.Asio

Время на прочтение15 мин
Количество просмотров246K
Привет Хабралюди!
Это мой первый пост, поэтому не судите строго. Я хочу начать вольный перевод книги John Torjo «Boost.Asio C++ Network Programming» вот ссылка на нее.

Содержание:


Во-первых разберем что есть Boost.Asio, как его собрать, а так же несколько примеров. Вы узнаете, что Boost.Asio больше, чем сетевая библиотека. Так же вы узнаете о самом важном классе, который находится в самом сердце Boost.Asio — io_service.

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

Используем почтовые индексы в своём приложении во благо

Время на прочтение6 мин
Количество просмотров57K
Я думаю, что на многих сайтах пользователя спросят его физический адрес. Для доставки ли, для отсылки бумажного спама уведомлений ли. И, в общем-то — это мелочь. Вбил индекс, Москва, область, район, село, улица, дом, квартира. Казалось бы, что тут упрощать, каждый вроде помнит свой адрес, трудно ли его вбить? Но дьявол, как всегда, кроется в мелочах: пользователь опечатывается в адресе, посылка уходит не туда, лучи «добра» идут вам в обратную связь и вообще жизнь плохеет.

Приглядитесь к первой части адреса — индексу. В этом наборе из шести цифр уже есть область, район и город/село. Их можно подставить автоматом. Этим мы убъём сразу двух зайцев:
  • Убережём пользователя от ошибок (при вводе неверного индекса он сразу заметит, что город-то не его), что, в случае доставки письма (а то и посылки), может здорово её ускорить (пока её по неверному индексу зашлют, да пока разберутся, что не туда заслали, да отправят туда — пользователь вам всю плешь проест)
  • пользователю будет приятно, что о нём заботятся :-)

Дело за малым: нам нужна база почтовых индексов.

И она есть! Всамделишняя, электронная и, главное, официальная база индексов от Почты России.
Встречайте!

Внешний сервис голосования aka like-dislike feature

Время на прочтение3 мин
Количество просмотров6.2K
Добрый день, Хабрасообщество!

В процессе реализации одного моего проекта (с блекджеком и всеми остальными social прелестями), пришлось реализовывать функциональность голосования (like, like/dislike, rating, etc) пользователей за некоторые сущности предметной области проекта.

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

Поискав в Google готовые решения, не удалось найти ничего подходящего. В основном решения (плагины для различных web-фреймворков) сводятся к добавлению дополнительных полей в существующие таблицы (или объекты коллекций в случае MongoDB), в которые пишется количество лайков/дислайков, а также кто из пользователей уже проголосовал. Такие решения имеют значительные недостатки, так как с одной стороны не обладают достаточной гибкостью, позволяющей легко модифицировать алгоритмы голосования (что очень важно для нового проекта в процессе поиска правильной модели), а с другой стороны требуют модификации существующего кода и, что еще хуже, уровня хранения данных, для добавления функциональности голосования.
Читать дальше →

Хипстерский подход или «что делать когда писать пресс-релизы скучно»

Время на прочтение3 мин
Количество просмотров4.3K
Пресс-релиз — это такая штука, которую мало кто читает, но которая необходима для хроник. Для Backendless-а, который трудится на ваше благо воплощает в жизнь девиз «ноль строк серверного кода в приложении», приближается Судный День дата коммерческого релиза. Это означает, что понадобится материал для прессы и этим не самым вдохновляющим делом пора заняться.



Но так как сегодня пятница, а энтузиазма по данному вопросу маловато, вашему вниманию предлагается пародия на традиционный пресс-релиз.
Поднять настроение

Импорт координат из текстового файла в чертёж nanoCAD на MultiCAD .NET API

Время на прочтение3 мин
Количество просмотров5.7K


В предыдущей статье мы писали о том, как импортировать точки из внешнего текстового файла в .dwg чертеж при помощи классического .NET API. В данной статье мы рассмотрим особенности решения этой же задачи на кросс-САПР-платформенном MultiCAD .NET API и продемонстрируем, как построенное приложение может быть запущено в nanoCAD и в AutoCAD без изменения настроек проекта и перекомпиляции.
Читать дальше →

Импорт координат из текстового файла в чертёж nanoCAD на классическом .NET API

Время на прочтение7 мин
Количество просмотров18K


Одним из наиболее популярных вопросов по программированию под nanoCAD является «Как мне импортировать точки из текстового файла?». Задача это несложная, но профессиональный проектировщик не обязан быть профессиональным программистом, поэтому эту статью мы написали в стиле «для начинающих».

Импортировать координаты в чертёж можно на любом из существующих в nanoCAD видов API. Мы решили выбрать .NET и сравнить два близких API: классический .NET API и кросс-САПР-платформенный MultiCAD.NET API. Под катом — первая часть — импорт точек на классическом .NET API.
Читать дальше →

Работа с API Яндекс.Метрика на Python

Время на прочтение2 мин
Количество просмотров15K
Всем любителям Python и Яндекс.Метрики доброго дня!

Некоторые знают, что с некоторых пор я заделался Web-разработчиком, впрочем это громко сказано. Мой сайт с занимательными задачками, кстати, если кому интересно, попасть туда можно вот по этой ссылке, медленно, но верно, катится в топы поисковиков, благо альтернатив не так много. О посещаемости на сайте я узнаю из отчетов уже полюбившейся мне яндекс.метрики. В принципе, там есть большинство из того, что мне нужно. Но каждый раз ходить на из сайт для того, чтобы посмотреть количество визитеров как-то не фонтан. И вот тут я снова, как нельзя кстати, вспомнил, что в общем-то я программист и учу питон. «Ладно», — подумал я — «заодно и в работе с сетью попрактикуюсь». Сказано-сделано. Через протокол oAuth регистрируем приложение и получаем для него отладочный токен (живет он бессрочно и каждый раз запрашивать его не надо. Так что под наши нужды — самое то!). Для всех интересующихся, под катом привожу код библиотеки, которую можно привязать к любому GUI — интерфейсу:
Читать дальше →

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