Работа с RESTful услуги в CodeIgniter

Руски (пуски) превод от Юрий Юриев (можете да видите и оригиналната статия на английски)

CodeIgniter е добре известен със своята мощ като рамка за уеб приложения на PHP, но не се използва никъде другаде. Днес ще научим как да използваме CodeIgniter за създаване на RESTful API за уеб приложения и ще демонстрираме как да взаимодействаме със собствения си API или други RESTful уеб услуги като Facebook и Twitter.

Подробности за урока

  • Програми: CodeIgniter, CodeIgniter REST сървър и CodeIgniter REST клиент
  • Трудност: средно аритметично
  • Очаквано време за завършване: 30 минути

Ако сте следвали поредицата CodeIgniter From Scratch, вече знаете колко относително бързо и лесно е да изградите уеб приложения като блогове, CMS системи, сайтове за брошури и др. Това, за което може би не сте мислили, е да използвате CodeIgniter за създаване на интерактивен API. След като изпробвах няколко REST, установих, че не само че им липсва простота, но им липсват повечето функции, които бихте очаквали от RESTful изпълнение; така че изградих своя собствена. Този урок ви показва как да използвате този код за настройка на REST API и дава пример за това как да взаимодействате с него от вашето уеб приложение.

  1. Имате уеб сървър, локално или онлайн, и знаете как да управлявате файлове в него.
  2. Прочетохте някои от CodeIgniter от уроци за нула.
  3. Знаете как да настроите CodeIgniter.
  4. Вие сте запознати до известна степен с RESTful услугите.

Този урок е разделен на две части. Ще започнем, като се научим как да създадем RESTful услуга и след това ще се научим как да взаимодействаме с нея по множество начини.

Част 1 - Изграждане на RESTful API

Стъпка 1. Настройване на демо версията

Първо трябва да изтеглите codeigniter-restserver кода от GitHub, да го извлечете и да го изпратите на вашия сървър.

работа

Когато отворите папката, ще видите пълна инсталация на CodeIgniter, за да активирате демонстрацията. Това ви позволява да изпробвате демонстрацията REST, преди да се интегрирате със съществуващото ви приложение.

Отворете "application/config/config.php" и задайте base_url, за да получите връзки. Този base_url ще бъде различен за всички и зависи изцяло от това къде качвате вашите файлове.

codeigniter

С извлечените файлове и base_url, ние сме готови да стартираме инсталацията RESTful CodeIgniter и да проверим предложената демонстрация. Прегледайте основния URL адрес по подразбиране:

http: // localhost/restserver

Изходният формат по подразбиране е XML, което виждаме в основния пример. Другите връзки са малко повече и демонстрират как да се предават параметри и как изходният формат може да се промени в URL:

Обикновено в CodeIgniter просто предавате стойности на параметрите, но контролерът REST приема произволен брой параметри в произволен ред. За да работи това, трябва да предадем името на параметъра, последвано от стойността по двойки.

restful

Като предоставя на разработчика на API и на клиентското приложение избор от формати за данни, които да се използват, API е отворен за много по-широка аудитория и може да се използва с повече програмни езици и системи. И това не са единствените формати, в които може да работи вашият REST API:

След отваряне на application/controllers/example_api.php, веднага ще откриете няколко разлики от обикновените контролери CodeIgniter.

REST_Controller

В модела MVC контролерът е централната точка на логиката. Той се извиква по заявка на потребителя и след това, въз основа на логиката в контролера, извлича данни и показва изгледи. CodeIgniter има своя собствена логика за това как трябва да работи контролерът, но тъй като правим нещо различно, се нуждаем от собствена библиотека REST_Controller за нашата собствена REST логика. Така че вместо просто да използвате:

Работа с ресурси

Конфигуриран е празен контролер, последван от методи или "ресурси". Това е може би най-объркващата част от урока, ако сте свикнали да работите с CodeIgniter. По принцип вземете Resource и HTTP глагола в комбинация, за да създадете име на метод. По този начин двата примера, които разгледахме по-рано, имаха ресурс потребител и потребители. Тъй като и двамата бяха заредени в браузъра, знаем, че той използва GET заявка и следователно се използват следните два метода:

Това може да изглежда малко странно, но дава възможност да се използва един и същ URL адрес и да се отговори на заявката в зависимост от използвания HTTP глагол. Ако някой се опита да осъществи достъп до вашия API по забранен начин (PUT или DELETE в този пример), той ще получи 404. Ако не сте добре в HTTP глаголите, нека да обясня.

Използва се за извличане на информация за съществуващ ресурс. Това се използва от браузърите, когато въведете URL и щракнете върху "отидете" или когато щракнете върху връзка, така че е идеално за извличане на информация за един от вашите REST ресурси (например потребител).

Използва се за актуализиране на информация за съществуващ ресурс. Браузърите използват това, за да подават повечето видове формуляри в мрежата, въпреки че някои използват и GET, изпращайки действие с формуляр, използвайки низ за заявка, съдържащ данните на полето.

По-рядко използван и неподдържан от повечето браузъри, PUT е необходим за създаване на нов ресурс.