Как сделать публичный api
Если вы работаете даже удаленно рядом с индустрией веб-разработчиков, можете быть на 100% уверены, что слышали эти три печально известных буквы: API .
О них разговоры раскиданы между нубами и экспертами:
Хотя API могут сначала показаться пугающими, они могут буквально изменить вашу жизнь как разработчика.
Зачем? Что ж, обучение правильному использованию API-интерфейсов может упростить, ускорить и усилить рабочий процесс разработки. Создание или интеграция API-интерфейсов приносит значительную пользу как для клиентов, так и для вас самих.
шутка:
мудрый совет: не изобретай велосипед
программист: хорошо
никогда больше не пишет собственный код
Помимо шуток, API играют важную роль в том, что вы не изобретаете колесо. В Snipcart мы твердо верим, что понимание основ API является ключевым навыком для современных веб-разработчиков. В этом посте мы поможем вам сделать это. Мы рассмотрим:
Чтож, не пора ли погрузиться в это?
Одним из первых, самых важных этапов в моей карьере программиста было правильное понимание API.
Я до сих пор использую их каждый день.
Прежде чем перейти к мелочам, позвольте мне сначала убедить вас, что понимание API стоит вашего времени.
Потому что обучение использованию API значительно повышает эффективность вашей разработки.
Во-первых, это позволяет вам использовать уже существующую логику или части, которые вам не нужно писать самостоятельно. Некоторые вещи, которые вы, возможно, просто не сможете написать самостоятельно! Поэтому, чтобы сэкономить драгоценное время, очень важно, как разработчику, иметь представление о том, как выглядит API.
Во-вторых, многие проблемы разработки, с которыми вы столкнетесь, уже были решены кем-то до вас. Какую бы форму ни приняли эти существующие решения ( FaaS , библиотеки, веб-сервисы, SDK, контентные API и т. Д.), Вам, скорее всего, понадобится API для взаимодействия с ними.
Так что же такое API?
Ну, официальное, устрашающее определение звучит так:
В компьютерном программировании интерфейс прикладного программирования (API) представляет собой набор определений подпрограмм, протоколов и инструментов для создания прикладного программного обеспечения. В общих чертах, это набор четко определенных методов связи между различными программными компонентами. Хороший API облегчает разработку компьютерной программы, предоставляя все строительные блоки, которые затем собираются программистом.
Тяжело, а? Давайте рассмотрим академическую прозу на ступеньку ниже. Вот более дружелюбное определение домашнего API:
Проще говоря, API объявляет интерфейс для взаимодействия с его логикой без необходимости знать, что происходит внутри. Это определение может быть применено к любому языку, протоколу или среде, в которой вы находитесь, если только это происходит на программном уровне (подробнее об этом ниже).
Чтобы пролить свет на API, давайте перечислим, чем они НЕ являются:
API не обязательно является внешней службой . Например, вы можете включать библиотеки непосредственно в ваше решение ИЛИ использовать их через API.
API это не просто интерфейс . Это и спецификация / формат и реализация.
API не является GUI (графический интерфейс пользователя). Он не делает взаимодействия на графическом уровне; он работает исключительно на программном уровне , либо через язык программирования , либо через коммуникационный протокол.
API также не является веб-крючком(web-hook). Если вам трудно понять разницу между ними, вот вступление к веб-зацепкам.
Различные типы API
Все API не созданы равными.
Конечные точки(endponts)
Конечные точки могут быть простыми функциями или состоять из множества функций, которые вызывают другие API и так далее. Единственным важным моментом здесь является то, что основная логика этих функций полностью абстрагирована. Вам не нужно никаких знаний о том, что происходит внутри них, чтобы использовать их. Пока вы используете правильный формат, вы сможете использовать их, что является причудливым способом сказать, используя их части из вашего приложения.
В итоге, API-интерфейс похож на любой интерфейс: выключатель света включит свет, независимо от того, знаете ли вы, как работают электрические токи (или еще будучи молодым человеком, я также узнал, что для того, чтобы он работал, нужно оплачивать счет за электричество, но это другая история.)
Чтение и понимание документации API
Из документов видно, что каждая функция объекта описывает, каким должен быть формат ввода (число, массив чисел и т. Д.), И описывает формат вывода. Обратите внимание, однако, что ничего не упоминается относительно логики для запуска этих функций. Например, если вы запустите консоль разработчика и Math.sqrt (без выполнения функции), вы получите что-то вроде ? sqrt() < [native code] >. Это дух API: независимо от того, вызываете ли вы один из API вашей операционной системы или веб-API, эти принципы сохранятся.
Основные примеры использования API
Есть масса вещей, которые нужно сделать с популярными провайдерами API. Например, API Карт Google часто используется для улучшения взаимодействия пользователей с данными, основанными на отображении в реальном времени и сигналах трафика. API Twitter, еще один большой, можно использовать для фильтрации и отображения целевых твитов в режиме реального времени.
Теперь, если вы следите за нашим блогом, я подозреваю, что вы больше заинтересованы в веб-API, чем что-либо еще. Итак, давайте углубимся в конкретные варианты использования. Обратите внимание, что мы будем использовать Postman в наших примерах. Конечно, этот Rest Client связан с веб-средой, но такие инструменты обычно существуют и в других средах. Стоит взглянуть на инструменты, предоставляемые для данной среды, прежде чем начать играть с ней; может сэкономить вам много времени.
Использование публичного API для извлечения данных
Наш первый пример будет довольно простым, но все же более интересным, чем математический.
Давайте запустим Postman и посмотрим, как выглядит его пользовательский интерфейс.
Мой пользовательский интерфейс использует темную тему, поэтому она может немного отличаться от вашей.
Сначала может быть много информации, которую нужно переварить, поэтому давайте начнем с VERB и URL.
Вы можете поиграть с различными маршрутами в их документации, чтобы ознакомиться с окружающей средой.
Цель будет состоять в том, чтобы создать простой инструмент CLI для создания скидок на одноразовое использование для покупателей. Эти скидки будут генерироваться через API, и все это будет происходить исключительно на вашем компьютере.
Создайте новую папку для этого проекта, используйте npm init в папке и загрузите ваш текстовый редактор. Теперь создайте файл index.js , затем откройте файл package.json . В него добавьте следующие строки в объект верхнего уровня:
Давайте просто сосредоточимся на функции request здесь. Здесь мы делаем внешний вызов API для Snipcart. Вы можете видеть, что мы передаем method: “POST” в метод. Это потому, что мы хотим публиковать данные в API Snipcart. Указав этот метод, API будет правильно отображать действие, чтобы он мог прочитать тело запроса, в котором находятся данные о скидках.
Концепции аутентификации могут стать довольно обременительными; Вы можете прочитать этот классный пост, чтобы лучше освоить тему.
Для нашей цели мы передаем ключ API непосредственно в запросе, и ура сервер нас узнает! Затем он может выполнить запрос, относящийся только к нашей учетной записи.
Если вы хотите протестировать наше маленькое приложение, вы можете запустить npm install -g в каталоге проекта и просто запустить discounts x чтобы создать скидки x количество раз. Вы можете зайти в свою панель Snipcart ( навсегда бесплатные аккаунты в тестовом режиме) и убедиться, что скидки были созданы правильно. Вы можете себе представить, насколько мощным это может быть: если бы вам пришлось создать 200 таких скидок, это потребовало бы слишком много времени, чтобы сделать это через наш пользовательский интерфейс. Однако, когда вы ознакомитесь с работой API, это можно сделать за считанные минуты. Код также можно использовать повторно, так что если вам нужно сделать то же самое через месяц, ну, вы уже готовы!
Если у вас есть конкретные случаи использования API, о которых вы хотите рассказать, напишите их в комментариях. Мы рассмотрим возможность их добавления в нашу дорожную карту контента! :)
Я искренне надеюсь, что этот учебник помог вам лучше понять, что такое API, и как вы можете использовать их в своем рабочем процессе разработки.
- API-интерфейсы ускорят вашу скорость и расширят ваши возможности разработки. Используй их!
- API не обязательно связаны с веб-экосистемой; Вы увидите их повсюду.
- Всегда внимательно проверяйте документацию API, который вы хотите использовать.
- Всегда выполняйте поиск существующих инструментов (API или других) в вашей экосистеме, прежде чем начинать кодировать.
Так каков следующий шаг? Как и почти все в сфере разработки, вам нужно кодировать, кодировать, кодировать и еще немного кодировать! Так вы познакомитесь с управлением и интеграцией API. Через некоторое время вы станете эффективнее с ними.
Публичное API предоставляет возможность доступа к различным данным без предварительной аутентификации. Работа с API подразумевает отправку GET запроса на URL адрес нужного метода. Ответ сервера представлен в формате JSON.
Вы можете полностью закрыть доступ или отключить некоторые методы публичного API в разделе "Настройки приложения" — "Настройка публичного API".
Пример успешного ответа:
Пример неуспешного ответа:
Для смены локализации добавьте параметр "language" с двухбуквенный кодом языка в качестве значения. По умолчанию используется язык, который установлен в разделе "Настройки приложения" — "Настройка языка".
Максимальное количество последних новостей можно установить в разделе "Настройки шаблона" - "Настройка оформления и виджетов".
Не обязательные параметры запроса:
Параметр | Описание |
---|---|
base | Код базовой валюты (по умолчанию USD) |
Ответ содержит массив с идентификаторами валют в качестве ключа и вложенный массив доступных направлений обмена в качестве значения, который состоит из идентификатора валюты и строки идентификатора направления обмена.
При разработке приложения мы часто хотим просто сосредоточиться на интерфейсе, но интересные, динамические данные для отображения нам тоже нужны. Здесь в игру вступают общедоступные API (от англ. Application Programming Interface — программный интерфейс приложения).
Ничто не захватывает меня так же сильно, как поиск необычных API. Основное преимущество их применения заключается в том, что они позволяют одной программе взаимодействовать с другими. Использование общедоступных API позволяет сосредоточиться на интерфейсе и остальных важных вещах, не беспокоясь о базе данных и серверной части.
Ниже 7 малоизвестных, общедоступных и бесплатных API.
Сколько раз вы пытались придумать обидное оскорбление, и не получалось? Теперь у вас есть помощник. Как следует из названия API, его цель состоит в том, чтобы предложить самые злобные оскорбления.
Вы можете создать приложение, основанное на этом API, или объединить его с другими, перечисленными ниже. Например, внедрить сгенерированные оскорбления в шаблоны мемов.
API чрезвычайно прост в использовании. Перейдя по этому URL-адресу, вы получите желаемые данные в формате JSON, даже не подписываясь на ключ.
Вот как это выглядит:
Еще есть другие свойства, такие как время создания, язык, любые комментарии и просмотры.
Все знают о TMDb. Но в курсе ли вы, что есть другие API, которые предоставляют информацию по конкретным шоу и фильмам?
Если нет, тогда этот список для вас:
3. API YouTube (для встраивания функций YouTube)
Как и в случае выше вы можете начать работу с некоторыми API, даже не подписываясь на ключ. Более того, используя изображения без авторских прав, вы можете создать фанатское приложение для своих любимых шоу.
Вы получаете данные в формате JSON, содержащие массив объектов с цитатами, указание автора цитат и идентификатор.
Если добавить API YouTube, то получится идеальное приложение для поклонников этих шоу.
Mapbox предоставляет разработчикам точную информацию о местоположении и комплексные инструменты. Вы получаете мгновенный доступ к динамическим, обновляемым картам, которые можно дополнительно настраивать. Если у вас есть проект, заточенный под местоположение и карты, этот API отлично подойдет.
Однако стоит отметить, что вы должны пройти бесплатную регистрацию, чтобы получить уникальное право доступа и пользоваться всеми возможностями. А еще вы сможете использовать Mapbox с такими библиотеками, как Leaflet.js, и создавать красивые и удобные карты для мобильных устройств.
NASA предоставляет обновляемую базу данных о космосе. Используя этот API, вы можете создавать впечатляющие и обучающие приложения и веб-сайты.
Вы получаете доступ к разным видам данных: от астрономических снимков дня до снимков, сделанных с помощью Mars Rover. Полный список опубликован на сайте.
Также вам откроются описания патентов, программного обеспечения и технологий NASA, которые можно использовать для создания патентного портфеля. С помощью этого API вы даже получите доступ к библиотеке изображений и видео NASА.
Ниже приведен пример запроса фотографий, сделанных марсоходом Curiosity на Марсе.
Мы все любим использовать и создавать GIF-файлы. Но знаете ли вы, что их можно бесплатно включить в свое новое приложение с помощью GIPHY ?
GIPHY — самая большая библиотека гифок и стикеров в мире. С помощью их официального API вы можете бесплатно пользоваться обширной коллекций для создания уникальных приложений.
Используя search endpoint, пользователи могут получать наиболее релевантные гифки на основе своего запроса. У вас также появляется доступ к аналитике и другим инструментам, которые позволят создать персонализированный пользовательский интерфейс.
Однако наиболее часто я использовал translate endpoint, чтобы преобразовать слова и фразы в идеальную гифку или стикер. Можно указать уровень странности по шкале от 0 до 10.
Ниже приведен пример выходных данных:
Как следует из названия, этот API предоставляет коллекцию глубокомысленных цитат. Вы можете использовать их для отображения на странице веб-сайта или на заставке приложения, чтобы расширить пользовательский опыт.
Вы также получаете возможность создавать и управлять пользователями и сеансами. Однако существует ограничение на скорость: 30 запросов в 20-секундном интервале на сеанс.
У этого API тоже есть endpoint для фильтрации, голосования, составления списка, обновления и удаления цитат.
Edamam предоставляет доступ к базе данных, содержащей более 700 000 наименований продуктов питания и более 1,7 миллиона рецептов с анализом питательных веществ.
На бесплатном тарифе нельзя использовать API в коммерческих целях. Однако вы получите полный набор функций, таких как поддержка обработки естественного языка и 200 рецептов в месяц. Полную информацию о различных тарифах можно найти в этом разделе.
Пользователь вводит ингредиенты и получает подробный анализ, который поможет улучшить ваше питание. Эту функцию можно протестировать на демо-странице.
У Edamam есть и другие API, которые доступны для использования вместе с остальными, чтобы создать универсальное приложение для еды.
Они добавили новый диетический фильтр, специально разработанный для условий пандемии, в котором используются данные научных публикаций о питательных веществах и продуктах питания для повышения иммунитета.
Для доступа к API существует обязательный параметр api_token — ключ доступа к API. Узнать его можно в разделе "Профиль" на странице настроек Adesk.
Пример ответа от API при отсутствии ключа доступа:
Все дальнейшие описания методов подразумевают наличие ключа доступа к API и не учитывают ошибки, связанные с его отсутствием.
Необходимость продления доступа
Если время пробного периода или платной подписки истекло, то все методы публичного API будут заблокированы.
Пример ответа от API при отсутствии подписки:
Все дальнейшие описания методов подразумевают наличие активной лицензии и не учитывают ошибки, связанные с ее отсутствием.
Статьи операций
Пример объекта статьи операции, который является основной структурой данных для методов по статьям операций:
Создание, изменение, удаление статьи
Параметры (объект Form Data):
Параметр | Тип | Возможные значения | Описание | Обязательный |
id | Number | Идентификатор существующий статьи, если он передан в запросе, сервер попытается найти существующую статью и обновить ее, если нет - будет создана новая статья. | Нет | |
name | String | Название статьи. Максимальная длина поля: 210 символов. | Да | |
type | Number | 1, 2 | Тип статьи (см. описание объекта статьи). | Да |
kind | Number | 1, 2, 3 | Вид деятельности (см. описание объекта статьи). | Да |
group | Number | 1 | Группа статей. | Нет |
is_owner_transfer | Boolean | true, false | Является ли статья вводом/выводом денег. По умолчанию false. | Нет |
is_deleted | Boolean | true, false | Параметр, отвечающий за удаление статьи. Если параметр есть в запросе и имеет значение true, статья будет удалена. По умолчанию false. | Нет |
is_archived | Boolean | true, false | Параметр, отвечающий за добавление статьи в архив. Если параметр есть в запросе и имеет значение true, статья будет помещенна в архив. | Нет |
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Получение списка статей операций
Возможные параметры:
Параметры не являются обязательными. При их отсутствии, соответствующая фильтрация не будет осуществляться и вернется список всех операций.
Тип статьи для фильтрации. Будут возвращены статьи только указанного типа.
Пример запроса:
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
Проекты
Добавление проекта
Параметры (объект Form Data):
Параметр | Тип | Возможные значения | Описание | Обязательный |
name | String | Название проекта. Максимальная длина поля: 210 символов. | Да | |
description | String | Краткое описание проекта. | Нет | |
is_finished | Boolean | true, false | Параметр, отвечающий за статус проекта (активный/завершенный). Если параметр есть в запросе и имеет значение true, проект будет отмечен, как завершенный. | Нет |
plan_income | Number | Плановый доход по проекту в валюте аккаунта (по умолчанию 0). | Нет | |
plan_outcome | Number | Плановый расход по проекту в валюте аккаунта (по умолчанию 0). | Нет | |
category | Number | id направления проекта. | Нет |
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Изменение проекта
Параметры (объект Form Data):
Параметр | Тип | Возможные значения | Описание | Обязательный |
name | String | Название проекта. Максимальная длина поля: 210 символов. | Нет | |
description | String | Краткое описание проекта. | Нет | |
is_finished | Boolean | true, false | Статус проекта (активный/завершенный). По умолчанию false - считает проект активным. | Нет |
plan_income | Number | Плановый доход по проекту в валюте аккаунта. | Нет | |
plan_outcome | Number | Плановый расход по проекту в валюте аккаунта. | Нет | |
category | Number | id направления проекта. | Нет |
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Удаление проекта
Флаг успеха выполнения запроса.
Получение списка проектов
Возможные параметры:
Параметры не являются обязательными. При их отсутствии, соответствующая фильтрация не будет осуществляться и вернется список всех операций.
Позволяет осуществить выборку проектов по статусу.
Позволяет установить индекс элемента из общей выборки, начиная с которого данные будут возвращены. Отсчет ведется с 0.
Позволяет ограничить длину выборки. Если установлен стартовый индекс, то расчет длины происходит начиная с него.
Строка для поиска по названию проекта.
Параметр, отвечающий за ограничение количества выводимых параметров в ответе. Если true, то в ответе будут только поля id, name, isFinished.
Флаг успеха выполнения запроса.
Массив объектов проектов. Может быть пустым, если отсутствуют проекты.
Количество записей, отфильтрованных для текущей страницы.
Общее количество записей, доступных по указанному фильтру.
Список направлений проектов
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
Массив объектов направлений проектов.
Количество записей, отфильтрованных для текущей страницы.
Общее количество записей, доступных по указанному фильтру.
Обязательства
Добавление обязательства
Параметры (объект Form Data):
Параметр | Тип | Возможные значения | Описание | Обязательный |
amount | Number | Сумма обязательства. | Да | |
type | String | in, out | Тип обязательства. | Да |
date | String | Дата создания обязательства в формате YYYY-MM-DD. | Да | |
contractor | Number | id контрагента, к которому привязано обязательство. | Да | |
currency | String | RUR, EUR, USD, KZT, UAH, GBP, BYN | Валюта обязательства. | Да |
description | String | Краткое описание. Максимальная длина поля: 510 символов. | Нет | |
project | Number | id проекта, к которому привязано обязательство. | Нет |
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Изменение обязательства
Параметры (объект Form Data):
Параметр | Тип | Возможные значения | Описание | Обязательный |
amount | Number | Сумма обязательства. | Нет | |
type | String | in, out | Тип обязательства. | Нет |
date | String | Дата создания обязательства в формате YYYY-MM-DD. | Нет | |
contractor | Number | id контрагента, к которому привязано обязательство. | Нет | |
currency | String | RUR, EUR, USD, KZT, UAH, GBP, BYN | Валюта обязательства. | Нет |
description | String | Краткое описание. Максимальная длина поля: 510 символов. | Нет | |
project | Number | id проекта, к которому привязано обязательство. | Нет |
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
Измененный объект обязательства.
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Удаление обязательства
Флаг успеха выполнения запроса.
Банковские счета
Добавление счета
Параметры (объект Form Data):
Тип счета. 1 - наличные\касса, 2 - банковский счет.
По умолчанию создается банковский счет.
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Изменение счета
Изменяет существующий счет по его идентификатору. Для редактирования нужны права администратора.
Внимание: Список параметров для редактирования ограничен.
Параметры (объект Form Data):
Тип счета. 1 - наличные\касса, 2 - банковский счет.
По умолчанию создается банковский счет.
Флаг успеха выполнения запроса.
Удаление счета
Флаг успеха выполнения запроса.
Получение счета
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
Получение списка счетов
Возможные параметры:
Параметры не являются обязательными. При их отсутствии, соответствующая фильтрация не будет осуществляться и вернется список всех счетов.
Позволяет установить индекс элемента из общей выборки, начиная с которого данные будут возвращены. Отсчет ведется с 0.
Позволяет ограничить длину выборки. Если установлен стартовый индекс, то расчет длины происходит начиная с него.
Параметр, отвечающий за ограничение количества выводимых параметров в ответе. Если true, то ответ не детализированный.
Параметр, отвечающий за добавление суммарного остатка по всем счетам.
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
Массив объектов счетов. Может быть пустым, если отсутствуют счета.
* только при условии успеха запроса (success).
Количество записей, отфильтрованных для текущей страницы.
Общее количество записей, доступных по указанному фильтру.
Переводы
Добавление перевода
Параметры (объект Form Data):
Параметр | Тип | Описание | Обязательный |
transaction | Number | id транзакции, из которой нужно создать перевод. | Нет |
amount | Number | Сумма списания со счета-отправителя. | Да |
amount_to | Number | Сумма поступления на счет-получателя. | Нет |
from_bank_account | Number | id счета-отправителя. | Да |
to_bank_account | Number | id счета-получателя. | Да |
date | String | Дата выполнения перевода в формате YYYY-MM-DD. | Нет |
description | String | Краткое описание перевода. | Нет |
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
* только при условии неудачи запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Операции
Добавление операции
Параметры (объект Form Data):
JSON строка, которая представляет собой список объектов, в котором содержится информация о разбиении операции.
Принимаются следующие параметры: amount, contractor, project, category, related_date. Параметры аналогичны тем, что используются при обычном создании операции. Параметр amount обязателен.
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
* только при условии успеха запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Изменение операции
Параметры (объект Form Data):
Указывает является ли операция неподтвержденной.
Для подтверждения операции воспользуйтесь этим методом.
Указывает нужно ли разбить операцию на несколько частей.
В случае если редактируемая операция уже разбита, то при значении false произойдет отмена разбиения, а при true информация о разбиении обновится согласно передаваемому параметру parts.
JSON строка, которая представляет собой список объектов, в котором содержится информация о разбиении операции.
Принимаются следующие параметры: amount, contractor, project, category, related_date. Параметры аналогичны тем, что используются при обычном создании операции. Параметр amount обязателен. Сумма параметров amount должна совпадать с суммой редактируемой операции.
Если операция уже разбита на части, передача данного параметра заменяет данные о разбиении.
Флаг успеха выполнения запроса.
* в зависимости от данного параметра могут присутствовать или отсутствовать некоторые нижеследующие данные.
Внимание: При обновлени, в объекте операции возвращается новый id и в дальнейшем обращаться к этой операции необходимо уже по нему.
* только при условии успеха запроса (success).
Список ошибок, возникших при выполнении запроса, возвращается в случае неудачи запроса (success), пример:
Читайте также: