<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; REST API для ReadyScript]]></title>
	<link rel="self" href="https://forum.readyscript.ru/feed/atom/topic/904/" />
	<updated>2016-09-25T09:35:01Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.readyscript.ru/topic/904/rest-api-dlya-readyscript/</id>
		<entry>
			<title type="html"><![CDATA[Re: REST API для ReadyScript]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/4679/#p4679" />
			<content type="html"><![CDATA[<p>Для размышления:<br />API это средство доступа к объектам внутри системы, отражающее &quot;доверие&quot; разработчика системы к сторонним разработчикам.</p><p>Для себя сделал обертку для Битрикса, которая может обращаться к основным классам, понятно что могу &quot;чего нибудь сломать&quot; при работе с этим API но зато &quot;мощности&quot; хватает под мои задачи, шлю все POST пакетом команд.</p><p>Пример:</p><div class="codebox"><pre><code>{
  &quot;commandList&quot;:[
    {
      &quot;number&quot;: 1,
      &quot;module&quot;: &quot;catalog&quot;,
      &quot;class&quot;: &quot;CCatalogStoreProduct&quot;,
      &quot;method&quot;: &quot;GetList&quot;,
      &quot;parametres&quot;:  {
        &quot;arOrder&quot;: null,
        &quot;arFilter&quot;: null,
        &quot;arGroupBy&quot;: null,
        &quot;arNavStartParams&quot;: null,
        &quot;arSelectFields&quot;: []
      }
  
    },
    {
      &quot;number&quot;: 2,
      &quot;module&quot;: &quot;sale&quot;
    },
    {
      &quot;number&quot;: 3,
      &quot;module&quot;: &quot;shop&quot;
    }
  ]
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>https://forum.readyscript.ru/user/464/</uri>
			</author>
			<updated>2016-09-25T09:35:01Z</updated>
			<id>https://forum.readyscript.ru/post/4679/#p4679</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: REST API для ReadyScript]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/4622/#p4622" />
			<content type="html"><![CDATA[<p>Разработка API, а тем более REST API - это большая задача, особенно если нет под рукой набора базовых классов для API. (собственно мы этим сейчас занимаемся). Все же вас хочу предостеречь и предложить дождаться выхода нашего модуля для удобной разработки внешнего API. </p><p>Если желаете, мы можем вам дать альфа версию модуля, когда она будет у нас более менее стабилизирована, чтобы вы могли начать разработку API под ваши нужды. (напишите в поддержку запрос)</p><p>Если вам все же необходимо начать разработку прямо сейчас на имеющихся возможностях фреймворка, <br />то просто можете создать свой модуль. Рекомендую нашу статью в помощь <a href="https://readyscript.ru/text-blog/razrabatyvaem-sobstvennyy-modul/">https://readyscript.ru/text-blog/razrab … nyy-modul/</a></p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2016-09-20T16:02:28Z</updated>
			<id>https://forum.readyscript.ru/post/4622/#p4622</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: REST API для ReadyScript]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/4600/#p4600" />
			<content type="html"><![CDATA[<p>&quot;В текущий момент, вам возможно будет проще разработать более простой консольный импорт/экспорт файлов вашего формата&quot;</p><p>Цель в том чтобы вложить силы в формирование базы товаров со стороны 1С, после на основе API грузить с корректировками на сайт.</p><p>Пример: профили, которые включают плинтусы, порожки и.т.д., <br />в группе более 10 &quot;характеристик&quot;, <br />по части из которых фильтрация в списке, <br />по части формирование наименований &quot;комплектаций&quot; и отбор в карточке товара.<br />часть с множественным выбором (профиль может крепиться и на потолок и на стену)</p><p>+ задумка в том что &quot;комплектация&quot; она же SCU представлена в 1С как элемент справочника &quot;Номенклатура&quot; без характеристик, т.к. по части профилей есть и вариации по ширине в рамках одной модели. </p><p>Решаю за счет группировочного поля. (+ получаю бонус отсутствия перекоса себестоимости в бух учете)</p><p>+ нужно скомпоновать изображения (часть индивидуальные, часть общие для модели)</p><p>Делать файл выгрузки и после писать обработчик загрузки на сайт замучаюсь, проще API сделать.</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>https://forum.readyscript.ru/user/464/</uri>
			</author>
			<updated>2016-09-18T18:33:26Z</updated>
			<id>https://forum.readyscript.ru/post/4600/#p4600</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: REST API для ReadyScript]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/4599/#p4599" />
			<content type="html"><![CDATA[<p>Понятно, это замечательно.</p><p>Если будет возможность получить &quot;ранний доступ&quot;, то могу написать обмен со стороны 1С УТ 11 (сделать выжимку лучшего из cml1c и битриксовского решения).</p><p>Сам смотрел<br /><a href="https://events.yandex.ru/lib/talks/2927/">https://events.yandex.ru/lib/talks/2927/</a><br />Пример:<br /><a href="https://tech.yandex.ru/disk/poligon/#!//v1/disk/resources">https://tech.yandex.ru/disk/poligon/#!/ … /resources</a><br />Из этого вынес удобство PUT и DELETE по части определения идемпотентности.</p><p>Пример VK: <a href="https://vk.com/dev/audio.save">https://vk.com/dev/audio.save</a> - заменит или создаст новую запись со ссылкой на файл?<br />По товарам <a href="https://vk.com/dev/market.add">https://vk.com/dev/market.add</a> - 1 запрос на один товар, нет примера JSON тела, JSON схемы (думаю для разработчика клиента придется писать вручную)</p><p>В ReadyScript планируете добавлять/обновлять товар списком?</p><p>Недавно делали загрузку остатков и цен в Simpla, схема ценам (цена одна в симпле)<br /><a href="http://c2n.me/3CmdTPt">http://c2n.me/3CmdTPt</a><br />С точки зрения 1С-ника очень удобно.</p><p>В текущих обменах с сайтом по CML не всегда получаешь ответ о том что позиция записана на сайте, поэтому таблица регистрации изменений работает не полностью (отправил файл успешно - считаешь что позиции обновились).<br />Если будут ответы при загрузке списком, то обмен будет более четким.</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>https://forum.readyscript.ru/user/464/</uri>
			</author>
			<updated>2016-09-18T18:17:19Z</updated>
			<id>https://forum.readyscript.ru/post/4599/#p4599</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: REST API для ReadyScript]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/4598/#p4598" />
			<content type="html"><![CDATA[<p>Приоткрою тайну, мы сейчас активно работаем в направлении мобильных приложений для нашей платформы и соответственно активно разрабатываем механизм обмена данными с движком посредством внешних API. </p><p>Чуть позже мы включим в наш дистрибутив модуль для нашего фреймворка, позволяющий элементарнейшим образом добавлять любые внешние методы API. Определенная часть методов API (которые будут нужны нашим приложениям) будут уже написаны и смогут служить примером для написания других методов. </p><p>Скажу сказу, мы проанализировали классический REST подход, отлично описанный на сайте <a href="http://jsonapi.org">jsonapi.org</a>. И посмотрели в сторону <a href="https://vk.com/dev.php?method=methods">API Вконтакте</a>, которое на несколько порядков удобнее в дальнейшем расширении и разработке. Пару недель потратили на анализ и прагматичное сравнение двух архитектурных стилей. В результате мы выбрали архитектурный стиль ВК API. Название этого архитектурного стиля мы так и не смогли выявить, видимо потому что его нет, но оно чудовищно удобное. <a href="https://toster.ru/q/350268">https://toster.ru/q/350268</a></p><p>Из плюшек будущего API:</p><p>1. Оно будет самодокументируемо за счет PHP Reflection, т.е. вы просто пишете класс, создаете методы, согласно интерфейсу, объявляете параметры вашего метода API в виде аргументов специальной функции, прописываете комментарии PHPDoc, на выходе получаете полностью готовую автоматическую документацию по всем вашим API.<br />2. Будет определенный набор базовых абстрактных классов, для стандартных CRUD операций.<br />3. Авторзация уже будет в комплекте, пока будет метод oauth/token из официальной спецификации oAuth.</p><p>4. Верификация параметров будет многоуровневая. Сперва фреймворк будет автоматически сверять наличие обязательных параметров на основе обязательных аргументов специальной функции контроллера. (с помощью Reflection), далее каждый метод может делать дополнительную верификацию и бросать исключение в случае ошибки.</p><p>Модуль еще находится в активной разработке, рекомендуем подождать его выхода. (Срок пока сложно назвать)</p><p>В текущий момент, вам возможно будет проще разработать более простой консольный импорт/экспорт файлов вашего формата, т.е. не полноценный внешний API, а просто механизм импорта/экспорта файлов вашего кастомного формата, это на порядок быстрее и вероятно закроет вашу задачу?</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2016-09-18T17:15:27Z</updated>
			<id>https://forum.readyscript.ru/post/4598/#p4598</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[REST API для ReadyScript]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/4597/#p4597" />
			<content type="html"><![CDATA[<p>Есть мысль написать REST API для ReadyScript<br />Причина, достаточно сложный каталог и переносить его через cml проблематично.<br />На первый взгляд на ReadyScript этот каталог можно реализовать.</p><p>До этого была проба организовать на ShopScript, но посмотрев на их &quot;внутреннюю кухню&quot; решил идти дальше.</p><p>Проектировал на RAML + JSON Schema, дополнительно описывал объект типами, но потому что отсутствовала вменяемая документация на систему, решается ссылкой на документацию в описании к объекту.<br />Пример <a href="https://yadi.sk/d/y4IzMo4OvLTCW,">https://yadi.sk/d/y4IzMo4OvLTCW,</a> распаковать и запустить index.html , сама схема /raml/api.raml.</p><p>Реализовывал на silex<br /><a href="https://yadi.sk/d/FojkliI0vLTYH,">https://yadi.sk/d/FojkliI0vLTYH,</a> это &quot;приложение&quot; для ShopScript, <br />маршрутизация в lib\actions\restapiFrontend.controller.php<br />реализация в lib\classes\</p><p>верификация производится по тем схемам, которые в документации<br />сериализация (нормализация) через массив, т.к. &quot;нормальных&quot; объектов в SS7 нет.<br />все ошибочные возвраты через &quot;restapiException&quot;</p><p>Вопросы по реализации в ReadyScript на наличие внутреннего инструментария (можно ссылки на документацию)<br />Каким образом можно прописать маршрутизацию? <br />Каким образом обработать Request и сформировать Response?<br />Каким образом сделать аунтификацию?<br />Каким образом верифицировать входящие данные?<br />Каким образом сериализовать объект с фильтрами?</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>https://forum.readyscript.ru/user/464/</uri>
			</author>
			<updated>2016-09-18T14:42:41Z</updated>
			<id>https://forum.readyscript.ru/post/4597/#p4597</id>
		</entry>
</feed>
