РЕСТ АПИ-ји

Историја

РЕСТ је скраћеница од Ре пресентатионал С тате Т рансфер протокол. Рои Фиелдинг дефинисао је РЕСТ у својој докторској дисертацији 2000. године.

Шта је РЕСТ АПИ?

РЕСТ је развијен да обезбеди јединствени интерфејс за

  • Идентификовање ресурса
  • Манипулација ресурсима
  • Самоописне поруке
  • Коришћење Хипермедиа као покретача стања апликације (ХАТЕОС)

Најбоље праксе

Основе

Метод || //апи.цо/в2/царс || //апи.цо/в2/царс/1234

  • ГЕТ || Наведи све аутомобиле || Преузмите појединачни аутомобил
  • ПОШТА || Направите нови аутомобил || Грешка
  • СТАВИТИ || Замени колекције аутомобила || Замените аутомобил са ИД 1234

    са новим

  • ИЗБРИШИ || Избриши све аутомобиле || Избришите аутомобил са ИД-ом 1234

Напомена, док ПУТ операције или клијент или сервер могу генерисати ИД-ове

Именице су добре Глаголи су лоши

  • Користе именице се односи ресурсе као што су cars, fruitsитд
  • Користите глаголе за декларације акције convertMilesToKms,getNutritionalValues

Једнина или множина?

Користите тачну граматику за декларацију

Избегавајте/person/145

Радије/people/154 претпоставите да вратите 154. особу са списка људи

Случајеви употребе

Користите било који од доленаведених образаца и будите доследни!

Стилови случајаПример //api.fintech.cp/DailyTransactions/TodayУпперЦамелЦасе //api.fintech.cp/dailyTransactions/todayловерЦамелЦасе снаке_цасе//api.fintech.cp/daily_transactions/today

Односи и ресурси

  • Ресурси могу имати one-to-many, many-to-many, many-to-oneодноси итд Мапирање их правилно је од кључног значаја.

Мапирање један према многима

На пример, Tickets/145/messages/4предлаже однос један према многима између ticketsи messages. Значење 1карте има Nпоруке. Порука није самостални ресурс. Не можеш имати /messages/4.

Мапирање од многих до многих

На пример, /usergroups/345/users/56предлаже да одаберете 345. групу корисника и добијете корисника са ИД-ом 56. Међутим, један корисник може бити у више њих, usergroupsтј /usergroups/209/users/56. Такође је важећи. У том случају за раздвајање ресурса депеданта у засебну usersкрајњу тачку као што је /users/56и пружање повезивања ресурса/usergroups/209/users/56

АПИ параметри

  • ПУТ : потребан за приступ ресурсу Нпр/cars./fruits
  • Параметри упита : опционално филтрирање листе Нпр/cars?type=SUV&year=2010
  • Тело : Логика специфична за ресурсе. Напредни упит за претрагу. Понекад може имати и упит и тело.
  • Заглавље : Требало би да садржи глобалне податке или податке широм платформе. Нпр. Параметри АПИ кључа, шифровани кључеви за потврду идентитета, информације о типу уређаја, нпр. Мобилна или радна површина или крајња тачка, тип података уређаја, нпр. Ксмл или јсон. Користите заглавље за комуникацију ових параметара

ХТТП статусни кодови

Користите тачне статусне кодове

Примљени и разумљиви ЦодесМеанинг1ккРекуест.2ккАкција коју је тражио клијент је примљена, разумљива и тражена.3ккЦлиент мора предузети додатне радње да би довршио захтев. Већина ових статусних кодова користи се у УРЛ-у Редирецтион.4ккИнтендед за ситуације када се чини да је грешку изазвао клијент.5ккСервер није успео да испуни захтев.

Мало више о 2кк !

  • 201 Ресурс створен. ПОСТ/carsтреба да врати ХТТП 201 креиран саlocationзаглављем у којем се наводи како приступити ресурсу Нпр .location:api.com/cars/124у заглављу

202 - Прихваћен

Користите ово ако је задатак огроман за покретање. Обавестите клијента да је прихватио захтев и обрађује / обрађује / не враћа се корисни терет

204 - Нема садржаја

Користи се када је избрисано Не DELETE cars/124враћа садржај. Али се такође може вратити 200 OKако АПИ намерава да пошаље избрисани ресурс на даљу обраду.

Опасни 5кк ресурси!

  • 500 Интерна грешка сервера
  • 504 Гатеваи тимеоут. Сервер није добио благовремени одговор

Мање познати 4кк сугерира да прослеђујете погрешан параметар. Такође може проследити информације које су погрешне. На пример

DELETE /cars/MH09234

враћа 4xxили порукуExpecting int car id /car/id got string car/MH09234