Основе РЕСТ и РЕСТфул АПИ развоја
Веб програмери често говоре о томе РЕСТ принципи и РЕСТфул архитектура података, јер је то кључни аспект модерног развоја, али понекад може бити невјеројатно збуњујуће. РЕСТ није технологија сама по себи, већ прије метод креирања АПИ-ја са одређеним организационим принципима. Ови принципи су водич за програмере и креирање универзалнијег окружења за обраду АПИ захтева.
У овом посту, желим да објасним РЕСТфул развојне праксе из птичје перспективе. Желим се ухватити у коштац тхе Шта радије него како. Иако ћу се дотакнути оба подручја, овај пост је направљен за свакога тко се бави развојем веба, али једноставно не може схватити концепт РЕСТ АПИ-ја.
РЕСТ за веб програмере
Кратица РЕСТ је кратица Репрезентативни државни пренос. Ово може звучати помало збуњујуће, а вики унос чини га још збуњујућим. Али могуће је поједноставити терминологију.
РЕСТ је само серија смјернице и архитектонски стилови који се користе за пријенос података. Обично се примењује на веб апликације, али може преносити податке и на софтвер.
Акроним АПИ означава Апплицатион Программинг Интерфаце, који је метода повезивање са другим библиотекама или апликацијама. Виндовс има више АПИ-ја, а Твиттер има и веб АПИ, иако обављају различите задатке са различитим циљевима.
Комбинујући све то заједно, РЕСТфул АПИ-ји су АПИ-ји који прате РЕСТ архитектуру.
Шта је тачно РЕСТ архитектура?
Овде је тешко одредити специфичности. Међутим, постоје неке архитектонске константе, као што су:
- Доследност преко целог АПИ-ја
- Постојање без држављанства, тј. нема сесија на страни сервера
- Употреба ХТТП статусни кодови где је потребно
- Употреба УРЛ крајње тачке са логичком хијерархијом
- Верзија у УРЛ-у него у ХТТП заглављима
Не постоје никаква превише специфична упутства као што је В3Ц ХТМЛ5 спецификација која би могла довести до конфузије и мијазма неизвесности око РЕСТ терминологије.
Такође, горе наведена листа не треба сматрати строгим правилима, иако се односе на већину модерних РЕСТфул АПИ-ја.
РЕСТ је а лагана методологија што га чини савршеним за ХТТП податке. То је разлог зашто је РЕСТ постао толико популаран на вебу и зашто га се сматра најбољим избором за развој АПИ-ја.
Као што Винаи Сахни каже, “АПИ је корисничко сучеље програмера.” Све би требало да буде једноставно за коришћење и да пружи одлично корисничко искуство. РЕСТфул АПИ-ји имају за циљ управо то.
Кључна храна за РЕСТфул АПИ-је
Ови савети су у контексту АПИ-ја строго за веб апликације. То значи да ХТТП је захтеван, и то често значи АПИ подаци хостовани су на спољном серверу. Погледајмо како РЕСТфул АПИ-ји раде на страни АПИ корисника.
АПИ корисник је веб девелопер који може да направи скрипту која се повезује са спољним АПИ сервером, а затим се потребни подаци прослеђују преко ХТТП-а. Програмер затим може приказати податке на својој веб локацији без личног приступа спољном серверу (попут повлачења Твиттер података).
Генерално говорећи, постоје четири команде користи за приступите РЕСТфул АПИ-јевима:
ДОБИТИ
за преузимање објектаПОШТА
за креирање новог објектаСТАВИТИ
за измену или замену објектаДЕЛЕТЕ
за уклањање објекта
Свака од ових метода би требала бити прошло са АПИ позивом да каже серверу шта да ради.
Велика већина веб АПИ-ја само дозволи ДОБИТИ
захтевима за извлачење података са спољног сервера. Аутентификација је опционална, али је свакако добра идеја када се дозвољавају потенцијално штетне команде СТАВИТИ
или ДЕЛЕТЕ
.
Међутим, не много РЕСТфул АПИ-ја чак иду тако далеко. Размислите о Покеапи која је бесплатна база података Покемон АПИ. Отворен је за јавност са пристојним ограничавањем брзине (ограничавање корисника на одређени број АПИ захтева током одређеног временског периода), али дозвољава само ДОБИТИ
метода приступа ресурсима. Ово се може колоквијално назвати а АПИ само за потрошњу.
Врсте повратка такође су важне и треба задржати хомогеност за све ресурсе. ЈСОН је популаран тип повратка са онлине спецификацијама које објашњавају одговарајуће структуре података.
Користе се РЕСТфул АПИ-ји именице за АПИ објекте, и глаголи за извођење акција на те објекте. Аутентификација може бити део тога, ограничење брзине такође може бити део овога. Али веома једноставан АПИ може да прође без много брига око корисничких ограничења.
Приступање ресурсима АПИ-ја
Јавни АПИ-ји су обично доступне од директних адреса веб-локације. Ово значи структура УРЛ-а је важна, и требало би да се користи само за АПИ захтеве.
Неки УРЛ-ови могу да садрже префикс као / в2 /
за ажурирану верзију 2 претходног АПИ-ја. Ово је уобичајено за програмере који не желе да амортизују свој АПИ 1.к, али и даље желе да понуде најновију структуру.
Заиста сам уживао у овој пост-покривању основне УРЛ структуре и примери из других услуга.
Имајте на уму да је крајња тачка повратни подаци ће се промијенити драматично засновано на ХТТП метода. На пример, ДОБИТИ
преузима садржај, док ПОШТА
ствара нови садржај. Захтјев може указати на исту крајњу точку, али резултат може бити врло различит.
Прегледавање примера на мрежи може вам помоћи да разумете појмове јасније. Већ смо видјели Покеапи, али ево и других примјери из стварног свијета прочитати:
- Реддит АПИ
- ГитХуб АПИ
- Флицкр АПИ
- Пинтерест АПИ
Изградња сопственог АПИ-ја
Процес изградње сопственог АПИ-ја не би требало узети олако, али није тако компликован као што можда мислите. Потребно је разумевање АПИ дизајна и најбољих пракси изградити нешто од праве вриједности.
Сваки АПИ мора повезивање са сервером да врати неке податке. Не само да вам је потребно да пишете код да бисте то урадили, већ и да форматирате повратне податке. Остали потенцијални захтеви укључују Аутентикација и лимит лимит, тако да изградња АПИ-ја свакако није за слабашне.
Али погледајмо неке основне поставке АПИ архитектуре.
Буилд Ендпоинтс
Један аспект развоја АПИ-ја је крајње тачке зграде. Када стварање ресурса желите користити именице, а не глаголе. То значи да АПИ подаци треба да врате особу, место или ствар, најчешће је то ствар са специфичним атрибутима (на пример, цвркут и сви његови метаподаци).
Може бити тешко учење именовања именица, али ово је кључни аспект развоја АПИ-ја. Поједностављење је најбоље кад год је то могуће.
Велика дебата је сингулар вс. плурал именице. Ако сте правили Твиттер АПИ, прво можете имати групу објеката (тј. Твеет), а затим ставку објекта други (тј. Твеет ИД).
$ / твеет / 15032934882934 $ / твеет / 15032934882934
У овом случају, тврдила бих да облик у једнини изгледа боље. Ово је тачно поготово када се враћа само један ресурс. Али нема документованог 100% тачног одговора, зато урадите оно што најбоље одговара вашем пројекту.
Подесите тип повратка
Још једно разматрање је врати тип података. Већина веб корисника очекује ЈСОН садржај, тако да је то вероватно најбоља опција. КСМЛ је други избор ако желите понудити обоје. Међутим, ЈСОН је основни тип АПИ-ја за повратак међу веб програмерима.
У развој АПИ-ја улази много више, па препоручујем да се прво играте с АПИ-јем. На овај начин можете видети како други програмери граде своје АПИ-је, и надамо се да ћете се упознати са типичним захтевима.
Ако сте тек почели, размислите о уклањању ових приручника:
- РЕСТ АПИ Туториал Сите
- Писање једноставног РЕСТ АПИ-ја
- Изградња веб сервиса РЕСТфул
Даљи ресурси
Најбољи начин да научите развој веб апликација је кроз праксу. Одобрена теорија је увек вредна проучавања, јер вам омогућава да разговарате са програмерима и разумете како ствари функционишу.
Али добро је почети са развојем АПИ-ја повезивање у друге АПИ-је први. Сазнајте основе конекција на страни клијента, а одатле можете да пређете на развој АПИ-ја на страни сервера тако што ћете креирати сопствени АПИ од нуле.
Ако је то ваш циљ, молимо вас да размислите о следећим ресурсима који ће вам помоћи на вашем путу.
Боокс
- Правилник о РЕСТ АПИ дизајну
- РЕСТфул Веб АПИ
- РЕСТфул Веб Сервицес Цоокбоок
- Несметан одмор: Водич за дизајнирање савршеног АПИ-ја
Чланци
- Водич за почетнике за ХТТП и РЕСТ
- Креирање РЕСТфул АПИ-ја
- РЕСТфул Водич за именовање ресурса
- Креирање РЕСТ АПИ-ја користећи МЕАН стацк