Обновить
40.86

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

О создании API

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

«ZeroMQ».Глава 1: Приступая к работе

Время на прочтение10 мин
Охват и читатели91K
Всем привет!
Хочу начать вольный перевод книги «ZeroMQ.Use ZeroMQ and learn how to apply different message patterns». Уверен, что многие захотят разобраться с этой интересной библиотекой.

Содержание


Добро пожаловать в ZeroMQ! Эта глава представляет собой введение в ZeroMQ и дает читателю общее представление о том, что такое система очередей сообщений и, самое главное, что такое ZeroMQ. В этой главе мы поговорим о следующих темах:
  • Обзор того, что представляет собой очередь сообщений
  • Зачем использовать ZeroMQ и что отличает ее от других технологий работы с очередями сообщений
  • Основы клиент/серверной архитектуры
  • Рассмотрим первый паттерн: запрос-ответ
  • Как мы можем обрабатывать строки в C
  • Проверка установленных версий ZeroMQ


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

API консоли Javascript

Время на прочтение15 мин
Охват и читатели36K
Разработчикам удобно пользоваться консолью для отладки, но ещё удобнее, если будет оболочка, в которой учтены особенности реализации консоли в различных браузерах, поэтому тема обёрток для консоли устойчиво существует.

Рассмотрим ранее опубликованные решения, затем сделаем обзор методов консоли с помощью перевода недавней статьи Axel Rauschmayer-а, разработчика и консультанта с более чем 15-летним стажем, затем я опубликую некоторые свои решения, которые оказались удачными в процессе эволюции и отладки на ряде проектов.
UPD 2015: обновление таблицы команд до актуального состояния, Github (ru, en; разворачивание на javascript).
ой, сколько букв

Работа с таблицами в MultiCAD.NET. Часть 1. Создание отчета на основе шаблона

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


Этой публикацией мы открывам цикл статей про возможности и особенности API для работы с таблицами в MultiCAD.NET.

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

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

Базы знаний. Часть 1 — введение

Время на прочтение5 мин
Охват и читатели68K
Одной из причин слабого использования Linked Data-баз знаний в обычных, ненаучных приложениях является то, что мы не привыкли придумывать юзкейсы, видя перед собой только данные. Трудно спорить с тем, что сейчас в России производится крайне мало взаимосвязанных данных. Однако это не значит, что разработчик, создающий приложение для русскоязычной аудитории совсем уж отрезан от мира семантического веба: кое-что всё-таки у нас есть.
image
Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia, Freebase и Wikidata. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса.

Я попробую привести несколько примеров полезных энциклопедических данных, которые вы не найдете нигде, кроме Linked Data.

Эта статья — первая из цикла Базы знаний. Следите за обновлениями.


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

Наши партнеры: история Powerbot

Время на прочтение4 мин
Охват и читатели3.3K
Screen Shot 2013-10-15 at 10.31.15PM

Автор: Дмитрий Горшков, директор по продуктам компании Yam Labs, разработчика продуктов серии Powerbot и партнера Evernote

Осенью 2012 года я практически случайно попал на ежегодную конференцию Evernote — подобных событий в Сан-Франциско и округе проходит достаточно много, но в данном случае это стало не только интересным мероприятием с кучей игровых автоматов, но и отправной точкой для нового витка развития нашей компании и огромного количества новых продуктов.
Читать дальше →

Сессии в API на Yii c возможностью хранения в Redis

Время на прочтение7 мин
Охват и читатели21K
Не так давно у меня возникла необходимость написать API на Yii Framework, одним из функциональных требований в котором является авторизация. Для механизма авторизации я решил использовать сессии.
Читать дальше →

«Boost.Asio C++ Network Programming». Глава 7: Boost.Asio – дополнительные темы

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

Содержание:


В этой главе рассматриваются некоторые дополнительные темы Boost.Asio. Маловероятно, что вы будете использовать это каждый день, но, безусловно, будет не лишним это знать:
  • Если отладка не удается, то вы увидите, что Boost.Asio поможет вам в этом
  • Если вам придется работать с SSL, то посмотрите, что вам может предложить Boost.Asio
  • Если вы пишите приложение под определенную OC, то посмотрите, какие дополнительные функции есть в Boost.Asio для вас


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

«Boost.Asio C++ Network Programming». Глава 6: – другие особенности

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

Содержание:


В этой главе мы рассмотрим некоторые из не очень известных особенностей Boost.Asio. Объекты std streams и streambuf иногда немного сложнее в использовании, но, как вы сами убедитесь, у них есть свои преимущества. Наконец, вы увидите довольно позднее добавление в Boost.Asio — co-routines, которое позволит вам иметь асинхронный код, но легко читаемый (как буд-то бы он синхронный). Это довольно удивительная особенность.

Ну что, поехали

Частотный генератор фонового шума на HTML5

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели23K
В ряду генераторов фонового шума — пополнение. Да ещё какое. На сайте myNoise.net можно в удобном интерфейсе через Web Audio API сгенерировать подходящий фон: звук костра, ветра, водопада, дождя, белый шум, различные промышленные шумы и т.д. Всё совершенно бесплатно и работает даже в мобильных браузерах.


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

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

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

Содержание:


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

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

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

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

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

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

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

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

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

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

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

Содержание:


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

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

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

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

Содержание:


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



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

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

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

Содержание:


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

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

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

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



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

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

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

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

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

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

RESTful API на Node.js + MongoDB

Время на прочтение16 мин
Охват и читатели261K
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в 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 мин
Охват и читатели131K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming». Вторая глава получилась большая, поэтому разобью ее на две части. В этой части мы поговорим именно про основы Boost.Asio, а во второй части речь пойдет про асинхронное программирование.

Содержание:


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

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

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