За последние 24 часа нас посетили 22624 программиста и 1281 робот. Сейчас ищут 765 программистов ...

API форума

Тема в разделе "Решения, алгоритмы", создана пользователем Alost, 29 сен 2009.

  1. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Наткнулся на идею Psih о форумном API.Идея кажеться очень интересной.
    Навскидку представляю себе так:
    У нас есть обьект класса forum.
    в нем опреденены методы от загрузки данных до показа последнее сообщения.
    В базовой комплектации класс самодостаточен.Вызвал метод run и получил html код форума.(Хотя для уменьшения кода эту самодостаточность нужно обрезать,пусть лучше будет дополнительной оберткой для нежелающих работать напрямую с API)
    метод Run представляет также вызов других методов по почереди, то то например:showHeader,showTheamesList,showFooter.
    Но мы можем не вызвать метод Run а через более низкоуровневые методы получать данные, напримере getThemesList($forumId,$pageId) которая вернет нам массив данных в заранее известном формате.
    Также мы можем переписать метод Run и аналогичные под свои нужны чтоб свои нужны.

    Пока хочетсья услышать что в нем нужно будет, идеи о реализации, как асбтрагироваться от БД, система кеширование и т.д.Рассуждения по принципу "А зачет этот форум API нужен?","Очередной велосипед!!!" не желательны.
     
  2. АПИ по определению не возвращает контент для отображения. АПИ возвращает наборы данных. Иначе смысл апи отсутствует
     
  3. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Кто то наверняка сталкивался c API форумов, не в полном обьеме но частичьно его многие имеют.
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Ну почему же.

    АПИ это просто набор методов для доступа к некоторым функциям приложения.
    Некоторые из этих методов, вполне могут возвращать готовый контент для отображения.
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Можно подойти с другой точки зрения - кому нужен форум, который возвращает уже html, нарушая дизайн сайта?
    API на то и API, чтобы можно было легко интегрировать с сайтом.
     
  6. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Пфф.

    Да с какой точки не подходи. API не для легкости интеграции, а именно для предоставления доступа к некоторым своим функциям другим приложениям. ТОЧКА.

    Если форум имеет API для интеграции в блок сайта.
    А соответственно:
    - методы вывода себя в блок
    - возможность для темизации
    - возможность кастомизации шаблонов

    То нарушить дизайн сайта - вещь нереальная.

    Впрочем, если сам сайт криво спроектирован. То все возможно.
     
  7. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    я думаю что методы возврающие контент это уже дополнение.
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Нет, это такая же часть API, если ты ее написал.

    API - это не волшебная палочка и не готовое решение.
    Что ты в него положишь, то там и будет.
     
  9. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Апи для сабжа не имеет смысла
     
  10. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    API как раз для встраивания и нужен. Использовать такой форум отдельно не получится, либо его нужно поставлять в собственной обёртке для самостоятельной работы. API должен возвращать или принимать структуры данных - никакого HTML и прочего. Таким образом тому, кто встраивает форум, вы даёте полный контроль надо тем, в каком виде эти данные отдавать - HTML, JSON, XML, RSS - это его выбор.
     
  11. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Psih - а структура данных в виде XML пойдет? =)) А в виде XHTML? =)
     
  12. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Тогда, собственно, так и говорите - что вам нужен не форум с API для встраивания. А некий компонент-библиотека для создания встроенных форумов.
    Это разные вещи.
     
  13. Собственно, так и было сказано изначально.
     
  14. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Я могу ошибаться, но насколько мне помнится. Речь шла об API форума для встраивания, а не о библиотеке для создания встроенных форумов.

    1е подразумевает законченный и самостоятельный продукт с возможностью встраивания.
     
  15. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    первое есть самодостаточная библиотека

    библиотека !== приложение

    а я ещё раз повторяю, что форум ПО ОПРЕДЕЛЕНИЮ не может быть библиотекой =)
     
  16. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    другое дело делать какими-то закавырками, легковстраиваемое/настраиваемое приложение(форум)
     
  17. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Мое мнение что данные должны быть структурированы ввиде обьекта.Кто захочет xml пусть пишет себе обертку.
     
  18. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Это подойдет исключительно для библиотеки для создания форумов.

    Форум - это законченное решение.
     
  19. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Мы и не говорим о форуме, мы говорим о API форумном.
    Даем людям кубики, а они из них пусть собирают что хотят.
     
  20. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Вы бредите и плывете мыслью по древу.

    Поднимите тему с идеей Psih. Там была речь о прозрачном использовании данных и методов из уже рабочего форума.

    А не о конструкторе "сделай сам".
     
  21. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Simpliest там была идея о том, чтобы легко подключить форумное апи к любому сайту, изменив только дизайн, а про рабочий форум там не было ни слова.

    Я поддерживаю рассуждения Alost'а об этом АПИ. Имхо, это должно быть что-то типа такого:
    PHP:
    1. <?
    2. $forum = new ForumAPI ($config);
    3. $topic = $forum->getTopic($_GET['topic_id']);
    4. ?>
    5. <table>
    6. <? foreach ($topic->posts as $post) { ?>
    7.   <tr>
    8.     <td>
    9.       <strong><?=$post->author->name?></strong>
    10.       <img src="<?=$post->author->getAvaUrl()?>" />
    11.     </td>
    12.     <td>
    13.       <?=$post->text?>
    14.     </td>
    15.   </tr>
    16. <? } ?>
    17. </table>
    При этом — View в API совершенно не описывается (только для примеров), так как для каждого следующего форума — это будет совершенно иной шаблон со своим дизайном и т.п.
     
  22. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    то есть интерфейс должен быть типа такого:
    PHP:
    1. <?php
    2. interface IForumAPI {
    3.   /**
    4.    * @return array
    5.    */
    6.   public function getCategories ();
    7.  
    8.   /**
    9.    * @param int $id
    10.    * @return ForumAPI_Category
    11.    */
    12.   public function getCategory ($id);
    13.  
    14.   /**
    15.    * @param int $id
    16.    * @return ForumAPI_Topic
    17.    */
    18.   public function getTopic ($id);
    19.  
    20.   /**
    21.    * @param ForumAPI_Topic $id
    22.    * @return void
    23.    */
    24.   public function createTopic (ForumAPI_Topic $topic);
    25.  
    26.   // И так далее, суть понятна
    27. }
     
  23. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Такого рода API пишется за полчаса.
    А потом еще 20часов тратится на реализацию функций форума с его помощью.

    Хотите делать дерьмо и называть его API форума - делайте.
    Правда форумом и его API это не станет.

    В общем - в космос.
     
  24. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Я не понимаю, Simpliest, нахера к нам применять эти дешевые трюки НЛП? Мы — не пятилетние дети и не умственно-отсталые, чтобы нас так унижать.

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

    Когда нету аргументов — лучше помолчать.

    А вышеописанное апи, если оно будет грамотно сделано — было бы довольно удобно.
     
  25. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Мда. Убейтесь со своим НЛП. Никогда его не изучал и скорее всего изучать не буду. Я так живу.

    Вы планируете сделать бесполезную хрень, которая ни на грамм не облегчит задачу "встраивания" форума, с чего все и началось. Но зато облегчит создание форумов.

    Так вот еще 1000 форумов не нужно. Нужен 1 легковстраиваемый с возможностью доступа к отдельным его функциям без "уличной магии". Где можно будет ACL форума легко подменить своим или наоборот, вместо своего использовать ACL форума и т.д.

    Если результатом вашего API будет мануал по написанию своего форума плюс 3-4 готовых реализации форума в виде модуля/виджета для популярных фреймворков (ZF, Symfony, Yii, Kohana) - делайте. Но вы этого не сделаете, вы слепите очередной конструктор "сделай сам"(если вообще пойдете дальше разговоров). Хотите - делайте. Я от дискуссии самоустранился.

    Dixi.