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

+67
8.71K
Компонент InstantCMS JSON API

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

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

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

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

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

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

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

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

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

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

InstantCMS JSON API

от Fuze
Скачать 4 512 загрузок

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

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

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

в файле
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 5 лет назад #

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

0
Fuze Fuze 5 лет назад #

Нет

Еще от автора

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