Обновить
27.62

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

О создании API

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

Можно ли в 1С не соблюдать технологию внешних компонент? Или Как поздравить коллег с помощью 1С?

Время на прочтение13 мин
Охват и читатели11K
Возникла тут идея поздравить нашего главного бухгалтера более-менее оригинально, например, с помощью ее любимой программы 1С? Но как?

После некоторых размышлений, пришла мысль использовать для поздравлений фоновое изображение в клиентской области обычных форм для конфигураций на 1С77–1С82 либо во внешнем окне для управляемых форм 1С82 и во всех случаях для 1С83. На нем вывести нужное сообщение и дать ссылки на поздравительное видео, как показано на рисунке.

Поздравление в 1С
Читать дальше →

Создание приложения для Slack с использованием функций 8base

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

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

В этой статье мы создадим Slack бота, который публикует обновления при создании заказа на придуманной нами e-commerce платформе, которой мы управляем.

E-commerce платформа — это бессерверное приложение, созданное с использованием 8base. В этой статье мы будем использовать функции 8base для прослушивания событий Create в модели данных с использованием триггеров.

Триггер это тип функции, которая запускается в ответ на событие мутации данных: создание, обновление или удаление объекта. 8base предоставляет два типа триггеров в зависимости от того, хочет ли разработчик выполнить функцию до или после изменения данных: trigger.before и trigger.after.

Вам понадобятся


  • Базовое понимание React и Node.js. Перед началом работы убедитесь, что у вас установлены Node и npm / yarn.
  • Мы будем использовать некоторые GraphQL запросы в проекте, так что пригодится знакомство с GraphQL.
  • Создайте учетную запись 8base (если вы еще этого не сделали), посетив их веб-сайт.

Подготовка среды 8base


Создайте аккаунт или войдите в 8base. Для новых учетных записей 8base предоставляет бесплатный 30-дневный доступ.
Читать дальше →

FAQ по Superjob API (публикация вакансий)

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

Недавно я рассказывал о Headhunter API для публикации вакансий, упомянув Superjob. Теперь, реализовав тот же функционал на Superjob API будет справедливо поделиться с вами полученным опытом.


image

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

Создаём kubernetes-платформу в Pinterest

Время на прочтение8 мин
Охват и читатели5K
За годы существования Pinterest 300 миллионов пользователей сервиса создали более 200 миллиардов пинов на более чем 4 миллиардов досок. Чтобы обслуживать эту армию пользователей и обширную контент-базу, портал разработал тысячи сервисов, начиная от микросервисов, с которыми может справиться несколько CPU, и заканчивая гигантскими монолитами, которые крутятся на целом парке виртуальных машин. И вот наступил момент, когда взгляд компании упал на k8s. Чем же «кубик» глянулся «Пинтересту»? Об этом вы узнаете из нашего перевода свежей статьи из блога Pinterest engeneering.



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

В ходе поддержки этого зоопарка инструментов команда разработки сталкивается с рядом проблем:
Читать дальше →

Apple Music для разработчика

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

Вводные слова


Как бы ни ругали Apple за закрытость платформы и самой экосистемы, некоторые их решения являются исключением. На рынке много стриминговых сервисов, но предоставляющих полноценный SDK для стриминга в сторонних продуктах крайне мало, для российского рынка список официально доступных SDK ограничивается Deezer и Apple Music. Конечно, когда на наш рынок придёт Spotify, на один доступный SDK станет больше, но пока есть два игрока и только один из них имеет широкую пользовательскую базу.


Так получилось, что я имел опыт работы с Deezer SDK под Android и прямо сейчас активно работаю с SDK Apple Music (MusicKit) под iOS. И главное отличие от опыта с Deezer состоит в том, что MusicKit — это верхушка айсберга, она же публично доступный API. В отличие от Deezer, где повторить большую часть функциональности официального приложения — это просто длительный процесс, повторить функциональность даже веб-страницы Apple Music, используя только публичный API, невозможно. Даже если Apple использует MusicKit в своих решениях, то кроме него она использует ещё массу недокументированных API запросов и приватных API, которые простым смертным использовать запрещено.


В статье я расскажу про работу с MusicKit с точки зрения разработчика в контексте реализации достаточно "простых задач": поискать в каталоге, показать картинки в результатах поиска, получить песни, рекомендации и даже проиграть какую-то музыку. Забегая вперёд скажу, что многое из рассказанного будет справедливо и для работы с Apple Music в Android и Javascript.


Если понадобится, готов дать детальные ответы с кодом на вопросы в комментариях.

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

Пишем API на Python (с Flask и RapidAPI)

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


Если вы читаете эту статью, вероятно, вы уже знакомы с возможностями, которые открываются при использовании API (Application Programming Interface).

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

Автоматическое обновление фотографии профиля Вконтакте

Время на прочтение6 мин
Охват и читатели6.2K
Код для обновления фотографии профиля Вконтакте с помощью VK API. Рассмотрим работу с капчей и загрузим код на сервер для автоматического обновления фотографии.

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

REST Assured: что мы узнали за пять лет использования инструмента

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

REST Assured — DSL для тестирования REST-сервисов, который встраивается в тесты на Java. Это решение появилось более девяти лет назад и стало популярным из-за своей простоты и удобного функционала.


В DINS мы написали с ним более 17 тысяч тестов и за пять лет использования столкнулись со множеством «подводных камней», о которых нельзя узнать сразу после импорта библиотеки в проект: статическим контекстом, путаницей в порядке применения фильтров к запросу, трудностями в структурировании теста.


Эта статья — о таких неявных особенностях REST Assured. Их нужно учитывать, если есть шанс, что количество тестов в проекте будет быстро увеличиваться — чтобы потом не пришлось переписывать.


image

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

«САПР для всех, даром, и пусть никто не уйдет…» или первые шаги в программировании FreeCAD на Python

Время на прочтение8 мин
Охват и читатели36K
Возможно, вам уже ранее попадались мои заметки по первым шагам в программировании САПР на примере NanoCAD.

Надо отметить, что для человека не умеющего программировать и знающего САПР на уровне «электронного кульмана» это было удивительное приключение. Однако, NanoCAD это все же в первую очередь коммерческий продукт. Его бесплатная версия не обновлялась, уже около шести лет и порядком устарела в плане возможностей для разработки.

А ведь так хотелось, чтобы как в одной замечательной повести: «Счастье для всех, даром, и пусть никто не уйдёт обиженный!» . Поэтому было принято решение, внять совету боевого товарища DrZugrik и установить себе FreeCAD.

Итак, по горячим следам пишу для вас материал, всего за один день я узнал, как подружить эту САПР с Anaconda, написал на Python простенький скрипт, который рисует квадратик с текстом и протестировал его на работоспособность в Windows и Linux. О чем я собственно готов вам по шагам рассказать и показать, чтобы вы тоже могли это сделать.

Хотите поближе познакомиться с очаровательной парочкой Python и FreeCAD? Тогда милости прошу под кат.


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

FAQ по HeadHunter API (публикация вакансий)

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

Небольшая история про наш рекрутинговый сервис под заказчика и большая история про проблемы, которые появились при интеграции с HeadHunter с точки зрения публикации вакансий. Почему HeadHunter? Потому что на Superjob всё несколько проще (но об этом позже).


image

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

Как я библиотеку для сервиса «Яндекс.Музыка» писал

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

Введение


Обо мне


Всем привет, я обычный учащийся по специальности "техник-программист". С детства увлекаюсь компьютерами, с класса 7-го начал познавать само программирование. Являюсь владельцем подписки на Яндексу Музыку уже больше года и в целом доволен сервисом (правда сейчас в плейлисте дня сплошные повторы).


Предыстория


Уж не помню точно, из-за чего я решил поискать официальную документацию API данного сервиса, вроде бота хотел для Telegram написать, но столкнулся с тем, что её нет… Спустя некоторое время наткнулся на issue в репозитории yandex/audio-js. Там ребятки задают точно такой же вопрос, как и я: "А где API?". Не многие горят желанием слушать музыку через браузер, они хотят приложение, но приложения под Linux тоже нет! Интегрировать к своему любимому плееру невозможно!


Тут я загорелся идеей сделать это. Естественно, мне нужно как-то работать с сервисом, городить костыли вокруг веб-приложения не вариант. Я понимал, что имея такой сервис, имея мобильные приложения и приложения под Windows (из Microsoft Store) просто невозможно не иметь своё внутреннее API для взаимодействия. Я оказался прав!


Обязательно к прочтению перед основной частью


Я отдаю себе отчёт в том, что, изучая их непубличное API я роюсь в чужих грязных вещах. Ниже будут описаны различные спорные моменты, решения разработчиков и в целом то, как это написали, как они этим пользуются. Местами я был просто шокирован, но я уверен, что если они так сделали, то на это были свои причины! Не будем забывать, что это никто не должен был видеть. Так же хочу сказать, что всё написанное ниже моё мнение. Вы можете с ним согласить или нет.

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

Обходим лимит поиска LinkedIn, играя с API

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

Лимит


Есть на LinkedIn такое ограничение — Лимит коммерческого использования. Крайне вероятно, что вы, как и я до недавнего времени, никогда не сталкивались и не слышали о нем.



Суть лимита в том, что если вы используете поиск людей вне ваших контактов слишком часто (точных метрик нет, решает алгоритм, на основе ваших действий — как часто и много искали, добавляли людей), то результат поиска будет ограничен тремя профилями, вместо 1000 (по умолчанию 100 страниц, по 10 профилей на страницу). Лимит сбрасывается в начале каждого месяца. Естественно, премиум аккаунты такого ограничения не имеют.

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

Web-геосервисы. Обзор современных решений

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


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

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

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

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

Внедряем IdM. Взгляд со стороны инженера внедрения

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

Ранее мы рассказывали о том, что такое IdM, для чего он нужен, как финансово обосновать его внедрение и т.п. Сегодня речь пойдет о том, какие подводные камни могут возникнуть при внедрении системы, и как их обойти и не набить себе множества шишек. Предположим, мы знаем, что у нас в компании есть некоторые проблемы, которые можно и хотелось бы решить с помощью IdM. Решение этих проблем в нашей компании экономически обосновано, поскольку серьезно разгрузит ИТ-подразделение, увеличит показатели эффективности компании в целом за счет экономии времени и ресурсов, необходимых для подготовки рабочего пространства новым работникам, и согласования и управления полномочиями старых. А сотрудники ИБ после внедрения IdM будут на седьмом небе от счастья, генерируя по кнопочке массу разнообразных отчетов, значительно упрощающих им жизнь при проведении аудитов безопасности, на радость себе и руководству. И вот решение принято – «Берем!».
Читать дальше →

API на F#. Доступ к модулям приложения на основе ролей

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

ASP.NET Core по стандарту предлагает настраивать доступ к api с помощью атрибутов, есть возможность ограничить доступ пользователям с определенным claim, можно определять политики и привязывать к контроллерам, создавая контроллеры для разных ролей
У этой системы есть минусы, самый большой в том, что смотря на этот атрибут:


[Authorize(Roles = "Administrator")]
public class AdministrationController : Controller
{
}

Мы не получаем никакой информации о том, какими правами обладает администратор.

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

Геопозиция и геолокация: мега-инструмент

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

Вступление


Сегодня геолокация и геопозиционирование превратились в государство, о котором мы не мечтали около 60 лет назад, в период первых мыслей о создании Интернет-сети.

Исследуйте геолокацию и API бесплатно вместе с сервисом геолокации IPGeolocation.io

Картография превратилась в чудо — из безумно больших листов бумаги в то, что умещается на ладони.

На сегодня, карты используются не только для поиска культурного центра в Париже, но чтобы иметь возможность найти все:

  • ближайший отель
  • аптеку или больницу
  • продуктовый магазин
  • университет или школу
  • место проведения концерта Pink в Сан-Франциско

Трансформация технологии на этом не остановится. Это станет лучше и точнее, как никогда.

Эволюция во времени


Давайте посмотрим, как началась эволюция геолокации. Путешествие этого явления начинается с давнейших времен.

Экскурс в прошлое
Читать дальше →

Стандартный браузерный API Payment Request

Время на прочтение6 мин
Охват и читатели15K
Знаете ли вы о том, что во многих современных браузерах имеется встроенный API, который называется Payment Request? Этот API описан в стандарте W3C, который направлен на поддержку работы с платёжной и контактной информацией. Вот обзор стандарта на ресурсе developers.google.com. Обзор реализации этого API на сайте MDN говорит о том, что Payment Request даёт разработчику браузерные средства, которые позволяют пользователям связывать предпочитаемые ими платёжные системы и платформы с интернет-магазинами. Это повышает удобство выполнения платежей за товары и услуги, ускоряя и упрощая этот процесс. В частности, например, API Payment Request позволяет пользователю ввести свои платёжные данные и адрес лишь один раз, а не вводить одни и те же сведения на каждом сайте. Выполнение оплаты на всех сайтах, поддерживающих этот API, будет выглядеть для пользователя одинаково. У API Payment Request есть и другие ценные возможности. Среди них — решение проблем с доступностью платёжных инструментов для пользователей с ограниченными возможностями, синхронизация платёжных данных между различными устройствами пользователей, стандартизированные средства обработки ошибок.



Материал, перевод которого мы сегодня публикуем, посвящён демонстрации практического использования API Payment Request. Сразу же стоит отметить, что API Payment Request — это экспериментальная технология, которая вполне может измениться в будущем. Однако автор этого материала говорит, что она, несмотря на это, достойна того, чтобы с ней ознакомиться. Он уверен в том, что эту технологию ждёт светлое будущее, и в том, что изменения, которые могут быть в неё внесены, не слишком сильно повлияют на основные принципы работы с ней.
Читать дальше →

Новые сертификации для девелоперов от Cisco. Обзор отраслевых сертификаций

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

Сертификационная программа Cisco существует уже 26 лет (была основана в 1993 году). Многим хорошо известна инженерная линейка сертификаций CCNA, CCNP, CCIE. В этом году программа дополнилась еще и сертификациями для девелепоров, а именно DevNet Associate, DevNet Specialist, DevNet Professional, DevNet Expert.


Сама программа DevNet существует в компании более пяти лет. Детально про программу Cisco DevNet уже было написано на хабре в этой статье.


И так что мы имеем касательно новых сертификаций:


  1. Как и для инженерных сертификаций, существует четыре уровня DevNet сертификаций — Associate, Specialist, Professional, Expert.
  2. Инженерные сертификации дополняются модулями по направлению автоматизации/программированию.
  3. В сертификациях для разработчиков есть модуль связанный с основами сетевой программируемости


Давайте рассмотрим каждую из сертификаций, в том числе контент и на кого ориентирована.

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

B2B-навык Алисы: от прототипа до первого сэкономленного рубля

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

Не так давно в Санкт-Петербурге прошла вторая конференция Conversations, посвящённая разговорному AI, на которой мне посчастливилось выступить в качестве докладчика. Темой была разработка прототипа B2B-навыка для крупной компании. В докладе рассказывалось о том, как удалось «подружить» навык с относительно медленными веб-сервисами и закрытой инфраструктурой компании. Об этом и пойдёт речь под катом.
Читать дальше →

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

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

Как максимально выгодно купить авиабилет?

Любой более-менее продвинутый пользователь Сети знает такие варианты как

  • покупать заранее
  • искать маршруты с пересадкой
  • hidden-city ticketing
  • мониторить чартерные рейсы
  • искать в режиме инкогнито браузера
  • использовать мильные карты авиакомпаний, всяческие бонусы и промо-коды

Полный список лайфхаков как-то делал Тинькофф-Журнал, не буду повторяться

А теперь ответьте на вопрос — как часто вы попадали в ситуации когда покупали авиабилет, а потом он стал стоить дешевле?
Читать дальше →

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