Компонент InstantCMS JSON API

+66
7.38K
Компонент InstantCMS JSON API

Привет, друзья.

Двигаемся в ногу со временем и поэтому настало время подготовить API InstantCMS2.

Для чего компонент

Компонент реализует легкое API (application programming interface) между сайтом и сторонним сервисом, например, мобильным приложением. Это значит, что пора создавать нативные мобильные приложения для ваших сайтов. Иными словами, сайт на базе InstantCMS будет выполнять серверную часть приложения. А по выходу полного функционала, InstantCMS можно будет с уверенностью назвать бэкендом для любого мобильного приложения.

Какая функциональность компонента

— Удобная обработка ошибок;
— Логирование запросов, включая время выполнения;
— Статистика ошибочных и успешных запросов в админке;
— Автоматическая валидация входных данных;
— Одна точка входа для всех методов API;
— Поддержка универсального запроса, в котором можно запросить несколько методов API.

Компонент принимает специальные запросы и отдаёт на них ответы в формате JSON. В основном, синтаксис запросов и формат ответов схож с официальным API Вконтакте. Это сделано специально, для более легкого понимания интеграторами.
Полная документация по функционалу на текущий момент доступна здесь.
Настройки состоят из чекбоксов включения логирования запросов, а также механизма создания ключей доступа.
Разработка ведется на гитхабе, код, разумеется, открытый. Компонент распространяется по той же лицензии, что и InstantCMS.

Разработка еще не закончена, однако уже основной костяк логики сформирован. Приглашаю всех заинтересованных к обсуждению функционала и, возможно, к разработке.
На данный момент API реализует эти методы. Постепенно будет включена поддержка других компонентов и развитие функционала в целом.
Я буду признателен любой помощи в части разработки бесплатного приложения для любой операционной системы мобильных устройств. Сейчас важно оттестировать api в боевых условиях, т.е. приложение => сайт.

Жду вопросов и обсуждения smile

+6
globator globator 5 лет назад #
Первый + от меня. Хорошо что InstantCMS развивается glasses
+1
DeeMon DeeMon 5 лет назад #
Ошибочка по тексту:
На данные момент
+2
Fuze Fuze 5 лет назад #
Спасибо, исправил
+2
AndroS AndroS 5 лет назад #
Надеюсь, это прорыв и новые разработчики подтянутся на инстант...
+3
My-InstantCMS.Ru My-InstantCMS.Ru 5 лет назад #
Спасибо за API
Недавно сам писал API для авторизации в android приложениях, теперь буду тестит на этом
+8
Fuze Fuze 5 лет назад #
Именно до авторизации еще не дошёл. Но всё впереди)
+5
Val Val 5 лет назад #
+1! Большое дело! Теперь ждем оф. мобильное приложение laugh
+1
Def Def 5 лет назад #
да, это было бы круто!) Покупателей будет оч много)
+1
Val Val 5 лет назад #
Вопрос в функционале такого приложения. Вот как вы его видите? Только максимально универсально, чтобы оно подошло всем без исключения!
И не забываем что в приложении нет админки, в которой можно включить/отключить или настроить какой либо функционал, который будет на фронтэнде.
+1
MiMoHOD MiMoHOD 5 лет назад #
Лично мне приложение нужно для осуществления более удобного и автоматизированного взаимодействия с пользователями, без необходимости регистрации их на сайте. То есть хочешь авторизироваться, не важно для чего, просто скачай приложение, хочешь просмотреть информацию о пользователе... ну вы поняли и т.д. и т.п. Для админа и модеров вход через админку сайта, как-то так.
+3
Def Def 5 лет назад #
согласен, админка это не самая важная вещь, хотя и будет полезна. вцелом главное это взаимодейтсие с аудиторией через пуш уведомления, предоставления сервиса.
+2
MiMoHOD MiMoHOD 5 лет назад #
Вот именно, админка это рабочий инструмент и предполагает соответствующие условия. ИМХО для админки достаточно адаптивности. Есть куча удобных шаблонов для админок, которые разработчики умудряются вешать даже на "морду" сайта. Пользователям не нужен сайт целиком, им нужно дать возможность выбирать необходимое и наладить обратную связь, а приложения подходят для этого идеально.
0
Алексей Т Алексей Т 5 лет назад #
О большое спасибо!+
+7
maxisoft maxisoft 5 лет назад #
Что тут можно сказать - только если сделать аналогию с Армстронгом, маленький шаг Игоря - большой скачек для сообщества и системы. P.S. Новости я уже получил в atom electron. Работает на 10000%
+1
Михаил Михаил 5 лет назад #
Большой плюс.
Ошибка на странице
Код PHP:
  1. content.get_ctypes Возвращает все типы контЕнта.
0
kirkr kirkr 5 лет назад #
Я как понимаю метода добавления пользователя и получения по нему инфы еще нет?
0
Fuze Fuze 5 лет назад #
Пока нет, но дойдём и до этого. Работа идёт.
+2
Zau4man Zau4man 5 лет назад #
Отлично. А то я уже начал делать свой велосипед.
+7
MiMoHOD MiMoHOD 5 лет назад #
Наблюдал за разработкой на github. Очень нужный и своевременно запущенный компонент. Удивительно, что вы нашли на нее время, в своем напряженном графике. Желаю успеха во всех начинаниях!
0
Dimson Dimson 5 лет назад #
Здорово! Методы добавления контента будут?
+2
Fuze Fuze 5 лет назад #
0
Dimson Dimson 5 лет назад #
Fuze, подскажите пожалуйста, когда примерно ожидать появления в компоненте методов добавления контента?
0
Fuze Fuze 5 лет назад #
Не могу сказать. Пока что для меня нет такой задачи. Сейчас важно доделать все методы получения данных и авторизацию.
+1
Денис Васильевич Денис Васильевич 5 лет назад #
Наверное и решений будет столько же много, сколько сведущих. Похоже я один бильмиман как с этим работать scratch
+1
Fuze Fuze 5 лет назад #
Использовать можно как угодно, хотя в большей мере конечно же сделано для бэкенда мобильных приложений. Компонент даёт универсальный интерфейс доступа к данным сайта на InstantCMS2. Можете к нему обращаться хоть с js сайта.
+1
Денис Васильевич Денис Васильевич 5 лет назад #
Во, так мне понятнее. Благодарю за пояснение.
+5
Fuze Fuze 5 лет назад #
Методы для получения данных компонента Контент "Типы контента" готовы. На гите актуальная версия, документация обновлена. Пробуйте, тестируйте, об ошибках пишите.

Далее приступаю к механизму авторизации пользователей и в целом к работе с пользователями. Заинтересованные могут следить на гите и в документации.
+1
Idler Idler 5 лет назад #
Спасибо fuze! Как всегда порадовал =)
+1
vikont vikont 5 лет назад #
Отлично! Молодцы! Если чем смогу помочь как пользователь-тестер в "боевых условиях" с удовольствием потрачу время!
Присылайте проги. У меня Андроид 4.4
+1
Idler Idler 5 лет назад #
Кстати, в шаблон http://addons.instantcms.ru/addons/art-web.html, могу вернуть JSON...
+1
Idler Idler 5 лет назад #
Тоесть на гитхабе тоже норм, хотя и так все разработки в онлайне... =)
+1
Алексей Т Алексей Т 5 лет назад #
Как через JSON API выполнять фильтрацию данных можно будет?
+1
Fuze Fuze 5 лет назад #
Уточните свой вопрос.
0
Алексей Т Алексей Т 5 лет назад #
Ну фильтрация и сортировка данных с сайта, например поиск по фильтру новостей.
+3
Fuze Fuze 5 лет назад #
Прочитайте внимательно тут. Можно применять наборы, фильтровать при помощи полей, доступных в фильтре.
+1
Алексей Т Алексей Т 5 лет назад #
Спасибо да да...ок
+1
Виктор Филинов Виктор Филинов 5 лет назад #
Зимой как раз планировал осваивать android, писав попутно neomessenger for android )
+1
PIN PIN 5 лет назад #
Честно..., не ожидал. Подключиться к тестам пока не могу, но буду следить за развитием.
+3
Fuze Fuze 5 лет назад #
Мы любим удивлять smile
+4
PIN PIN 5 лет назад #
Радует документированность проекта.
P/S
Посмотрел изменения в документации instantcms2 за прошедший без практики год и вывел, что надо будет подучить всё заново ).
Выражаю вам свой респект!
+4
Fuze Fuze 5 лет назад #
Стараемся посильно, спасибо за оценку!
+1
coolmazau coolmazau 5 лет назад #
Это то о чем я мечтал!
+1
Donto Donto 5 лет назад #
Здравствуйте всем! Очень хорошая новость! Спасибо огромнейшее разработчикам!
В связи с этим предлагаю сделать складчину, чтобы реализовать приложение под Андроид. Кто готов взяться?
И еще поделитесь кто уже что-то сделал на API?
+2
Daniil Daniil 5 лет назад #
Дедал очень похожую систему апи для разрабатываемого интернете магазина, чтобы с андроида было удобно администрировать сайт. Сейчас побит не плохо. Каждый день новые функции добавляем.
0
ermakover ermakover 5 лет назад #
Разработка застыла в октябре 2016...
+1
Fuze Fuze 5 лет назад #
Прекратилось финансирование - прекратилась активная разработка. Инвесторам хватило того, что есть. Единственное, есть еще пару методов, которых нет на гитхабе, на досуге сделаю коммит.
0
Александр Kreator Александр Kreator 5 лет назад #
Подскажите плиз, для того чтобы добавить запись в тип контента нужно отдельный экшен писать? или method сможет через уже имеющиеся акшены сработать?
+1
Fuze Fuze 5 лет назад #
Добавить свой метод по аналогии с существующими. Ну и в документации этот вопрос описан.
0
IRIPUS IRIPUS 3 года назад #
вот это самый сложный вопрос =(
0
SmartControl SmartControl 3 года назад #
Если вам нужен пример, скачайте мой компонент. Там достаточно примеров по работе с API. Но программировать придется самостоятельно.
0
Pocus Pocus 4 года назад #
Что произошло с InstantCMS JSON API?
Почему вдруг дата релиза поменялась на 04.09.2017, при том, что версия осталась прежняя - 2.0?
Изменения есть, или нет?
+2
Fuze Fuze 4 года назад #
Ничего не произошло, собрал пакет и сегодня выложил в каталог дополнений.
Изменения есть, или нет?
По сравнению с чем? До сегодняшнего дня компонент присутствовал только на гите. Сегодня первый релиз.
Посмотрите коммиты по дате на момент, когда вы ставили компонент в сравнении с текущей версией.
0
Алексей Т Алексей Т 4 года назад #
Большое спасибо за развитие! smile
+1
No Name No Name 3 года назад #
привет, пробую делать по примеру - instantcms_site.ru/api/method/content.get.board?api_key=API_KEY но почему то данные получаю в формате -
"title":"\u0418\u043d\u0442\u0435\u0440\u043d\u043 то есть я так понимаю проблема с кодировкой ? подскажите как правильно составить запрос что бы учитывалась кодировка сайта!спасибо
+1
Zau4man Zau4man 3 года назад #
Это данные, пришедшие в формате json.
Разберите их http://jquery.page2page.ru/index.php5/Парсинг_json-данных
0
No Name No Name 3 года назад #
спасибо, почитаю - просто в документации в примерах именно такой запрос делают и получают уже русскими буквами в полученных данных, а у меня абракадабра ))
0
dChirkis dChirkis 3 года назад #
+1 за обновку.
0
vladimird vladimird 2 года назад #
Для одного из типов контента goods применяю
instantcms_site.ru/api/method/content.get.goods?api_key=API_KEY
В ответ получаю ошибку, которую не знаю как обойти:
{"success":false,"errors":true,"error":"Recursion detected"}

При этом для других типов контента этот метод работает. Даже для этого же типа контента goods этот метод работает , если добавить к адресу другой датасет . То есть если задаю instantcms_site.ru/api/method/content.get.goods?api_key=API_KEY&dataset_id=20 то отрабатывает.

Как можно исправить ошибку {"success":false,"errors":true,"error":"Recursion detected"}
0
vladimird vladimird 2 года назад #
Так же заметил, что ошибки нет если пытаюсь отобразить отдельную категорию в которой еще нет товаров
то есть добавляю в строку запроса &cat_id=11
Если потом в эту категорию добавляю хотя бы один товар, то ошибка появляется снова.
0
vladimird vladimird 2 года назад #

Ошибку удалось пока локализовать.

в файле
api_content_get.php
в самом конце закоментировал одну строку:

  1. $this->result['additionally'] = array(
  2. 'fields' => $fields,
  3. 'props' => $props,
  4. 'filters' => $filters,
  5. // 'ctype' => $this->ctype,
  6. 'category' => $this->cat,
  7. 'dataset' => $this->dataset,
  8. 'group' => $this->group
  9. );



Почему 'ctype' => $this->ctype, приводит к рекурсии, пока не понял.

0
Kulibin Kulibin 7 месяцев назад #

Есть ли возможнасть выдавать токен конретному пользователю, чтобы он с помощю данного токена видел только свои данные?

0
Fuze Fuze 7 месяцев назад #

Нет

Еще от автора

Как собрать обновление и релиз InstantCMS
Небольшой экскурс в сборку дистрибутива установки и обновления InstantCMS с GitHub.
InstantCMS 2.14.0 release candidate
Здравствуйте Тестируем релиз-кандидат InstantCMS 2.14.0. От того, как мы с вами выявим баги в новой версии, зависит стабильность релиза.
Черная пятница, скидки на премиум компоненты
Привет, друзья! Сегодня день, которого многие давно ждали - Черная пятница!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.