Создание API под версию 0.2

Issue #17 new
Alexey Eschenko repo owner created an issue

Перед тестом на сервере необходимо сделать работоспособный API, который будет совместим со старой версией.

POST-запросы к API 0.2: {{{ -Получение списка языков: /api/langlist/ -Отправка кода на сайт и получение ссылки в plain-text: /api/add/ (code=код)[&code_comment=комментарий][&filename=имя файла][&lang=ID языка(INT)][&name=ник запостившего исходник][&expire=N] N - количество секунд в unixtime. Стандартные значения можно посмотреть в коде сайта на главной в выпадающем списке. }}}

Согласно тикету #7 необходимо изменить работу режима langlist. Предлагаю три варианта выдачи:

/api/langlist/mode/titles/

Выдача списка доступных языков в виде пар: {{{ #!ini cpp=C++ vbnet=VB.NET }}} /api/langlist/mode/id/

Выдача списка доступных языков в виде пар: {{{ #!ini 40=C++ 174=VB.NET }}} /api/langlist/mode/json/

Выдача списка доступных языков в виде JSON: {{{ #!json {"langs":[{"id":40,"shortname":"cpp","fullname":"C++"},{"id":174,"shortname":"vbnet","fullname":"VB.NET"}]} }}} /api/langlist/mode/xml/ {{{ #!xml <?xml version="1.0" encoding="utf-8"?> <langs> <lang id="40" shortname="cpp" fullname="C++" /> <lang id="174" shortname="vbnet" fullname="VB.NET" /> </langs> }}}

Comments (10)

  1. Alexey Eschenko reporter

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

    &lang=ID языка(int)
    

    На два параметра:

    &langid=ID языка(int)
    
    &langname=Короткое имя языка (string)
    

    Это сломает совместимость, но будет более верным решением, нежели фильтрация и двойная проверка на вхождение в списке языков из одного параметра.

  2. Alexey Eschenko reporter

    /api/langlist/ готов. Использование смотреть на странице api в Wiki.

  3. Log in to comment