Yii Framework Forum: Создание API - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Создание API Rate Topic: -----

#1 User is offline   Максим 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 24-April 17

Posted 24 April 2017 - 11:46 AM

Всем доброго времени!
Стоит задача написать относительно простое API для мобильного приложения (что-то типа каталога). До этого всё кое-как работало на самописном движке, но вскоре стало понятно, что расширять его будет весьма проблематично и затратно (по причине костылей и квадратных колёс, ну, это не суть важно)

Так вот, было принято решение написать API на фреймворке (чтобы потом в будущем можно было без проблем сделать web-версию). Выбор пал на Yii2.

Опыт работы с фреймворком у меня весьма посредственный - пара тестовых проектов и понимание основных принципов того, как там всё работает и устроено, но не более.

Исходя из документации я понял, что в Yii есть поддержка RESTful Api и его реализация не так сложна... Но вот вся проблема в том, что АПИ нужно реализовать так, чтобы было минимум отличий от предыдущей недоверсии. Вплоть до "одинаковости" запросов и ответов. Всё это для того, чтобы затрагивать код клиентской части как можно меньше... А если реализовывать на RESTful, то менять придётся всё.

В итоге получается, что нужно реализовать свой API-движок, если это так можно назвать и работать уже с ним.

И... Я просто не знаю как это сделать на Yii. Сделать-то конечно смогу, но не зная тонкостей работы с фреймворком начну изобретать кучу велосипедов, делать то, что во фреймворке уже теоретически есть.

Вид JSON ответа примерно такой:
{
  "response":{
    // Тут результат работы
  },
  "status":{
    "code":0,
    "message":"Success"
  }
}

Т.е в моём текущем понимании это всё должно работать примерно так:
Клиент делает запрос на server.com/api/user/list (server.com/?r=api/user/list).
Далее в методе actionList ведётся работа с моделью, которая возвращает данные и БД, далее всё это подставляется в "шаблон" ответа, в объект response. Т.е. в идеале после этого запроса ответ должен быть таким:
{
  "response":{
    "list":[
      {
        "id":1,
        "name":"Петя"
      },
      {
        "id":2,
        "name":"Вася"
      }
    ]
  },
  "status":{
    "code":0,
    "message":"success"
  }
}

Вроде всё просто и понятно, но вот тут у меня возник вопрос: Как реализовать работу с шаблоном, где и что нужно создавать? Я так понял для всего этого нужно написать класс, который будет всем этим заниматься... Создать-то не проблема, но хочется использовать функционал фреймворка по полной ;)

Извиняюсь за свою тупизну и примитивные вопросы, но гугл даёт инфу только по REST апи...
Всем бобра!
0

#2 User is offline   samdark 

  • Having fun
  • Yii
  • Group: Yii Dev Team
  • Posts: 5,093
  • Joined: 17-January 09
  • Location:Russia

Posted 25 April 2017 - 06:56 AM

Лучше сюда запостить: http://yiiframework....forum.php?f=30. На yiiframework.ru русскоязычное сообщество более активно...
Yii 2.0 Development Cookbook

Enjoying Yii? Star us at github

Support me so I work on Yii fulltime: https://www.patreon.com/samdark
0

#3 User is offline   Максим 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 24-April 17

Posted 28 April 2017 - 08:54 AM

samdark, хорошо, спасибо за совет.
Создам тему там, а тут, наверное, уже не актуально тогда, можно закрывать.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users