Како направити РЕСТ АПИ са СпрингМВЦ -ом у Јави

Преглед садржаја

Овај водич ће научити како направити кратак РЕСТ АПИ у Јави, користећи СпрингМВЦ. Видећемо упутства ГЕТ и ПОСТ, операције ДЕЛЕТЕ и ПУТ, било би згодно да их радите ради вежбе. Пре почетка препоручујем преузимање Ецлипсе СТС -а, доброг ИДЕ -а за програмирање на пролеће, што нам знатно олакшава креирање наших пројеката:

ДОВНЛОАД ЕЦЛИПСЕ СТС

БелешкаМорате имати инсталирану јаву, ако боље изаберете верзију 1.8.

Неке опште ствари треба имати на уму

  • Имамо контролер, који је задужен за испуњавање захтева који се постављају, класа која делује као контролер мора бити забележена са @РестЦонтроллер.
  • За сваки УРЛ морамо применити методу. Свака метода ће морати да иде уз напомену @РекуестМаппинг са УРЛ -ом на који се посећује и начином захтева, а такође ће вратити жељени објекат.

Сада ћемо видети пример, у њему ћемо имати класу Персон и контролер за особу ПерсонЦонтроллер.

1. Покрените пројекат
Отварамо СТС и дајемо нови пројекат "Почетник пролећног пројекта”, Конфигуришемо опције и име и дајемо Следећи, Оставићу како видите на следећој слици:

ЕНЛАРГЕ

[цолор = ргб (169,169,169)] Кликните на слику за повећање [/ цолор]

На следећем екрану који ће се појавити морамо изабрати опције које ћемо користити, оставићемо све нетакнуто и кликнемо Заврши и већ смо креирали пројекат, имаћемо следећу структуру (Имајте на уму да сам већ креирао 2 класе које ћемо користити, а хватање није из СТС -а):

То ћемо видети у срц / маин / јава Унутар пакета већ је креирана класа и она садржи следећи код:

 @СпрингБоотАпплицатион јавна класа ЕкамплеАпиАпплицатион {публиц статиц воид маин (Стринг [] аргс) {СпрингАпплицатион.рун (Апплицатион.цласс, аргс); }} 
Напуштамо ову класу онакву каква јесте, помаже нам да водимо наш пример. Идемо сада на час пом.кмл и проверавамо да ли имамо следећи код, ако није, једноставно га додајемо:
 орг.спрингфрамеворк.боот спринг-боот-стартер-парент 1.3.3.РЕЛЕАСЕ орг.спрингфрамеворк.боот спринг-боот-стартер-веб 
БелешкаМожда ћете морати да ажурирате свој пројекат са мавеном приликом чувања те датотеке, у СТС -у имате могућност да то учините (АЛТ + Ф5).

Сада ћемо видети класе које стварамо како изгледају.

2. Час особе
Прво стављамо код, а затим се објашњава.

 јавна класа Перона {привате лонг ид = -1; приватни назив низа; приватна инт аге; јавна особа () {} јавна особа (име низа, старост) {супер (); тхис.наме = име; тхис.аге = старост; } публиц Стринг гетНаме () {ретурн наме; } публиц воид сетНаме (Назив низа) {тхис.наме = наме; } публиц инт гетАге () {повратна доб; } публиц воид сетАге (инт е) {аге = е; } публиц лонг гетИд () {ретурн ид; } сет воид сетИд (лонг ид) {тхис.ид = ид; }} 
Ову класу није тешко разумети, све што морате знати је да су нам потребни гет и сет сваког атрибута, а такође и конструктор без параметара, јер ће их користити контролер, па ћемо избећи рад са многим параметрима и Спринг ће убризгати ове и створити објекат.

3. ПерсонаЦонтроллер класа
Опет као први део је код, а затим објашњење.

 @РестЦонтроллер јавна класа ПерсонЦонтроллер {привате Мап пеопле = нев ЦонцуррентХасхМап (); приватно Дуго коришћениИД = 0; @РекуестМаппинг (валуе = "/ пеопле", метход = РекуестМетход.ГЕТ) јавна колекција дамеПеопле () {ретурн пеопле.валуес (); } @РекуестМаппинг (валуе = "/ пеопле", метход = РекуестМетход.ПОСТ) @РеспонсеСтатус (ХттпСтатус.ЦРЕАТЕД) јавна особа аддПерсона (@РекуестБоди Особа п) {идУсадо ++; п.сетИд (идУсадо); пеопле.пут (идУсадо, п); ретурн п; } @РекуестМаппинг (валуе = " / пеопле / {ид}", метход = РекуестМетход.ГЕТ) јавни РеспонсеЕнтити гетПерсона (@ПатхВариабле лонг ид) {Особа п = пеопле.гет (ид); иф (п! = нулл) враћа нови РеспонсеЕнтити (п, ХттпСтатус.ОК); врати нови РеспонсеЕнтити (ХттпСтатус.НОТ_ФОУНД); }}
Шта нећемо користити базу података Ми стварамо мапу, да имамо базу података, ово би било замењено њеним спремиштем, а променљива идУсадо не би била потребна, али додавање базе података није циљ водича.
Унутар напомене РекуестМаппинг Видимо да имамо и методу, подразумевано је ГЕТ, па у тим методама не би било потребно да је додајемо, али не боли.

Имамо 3 методе
дајте ми људиОно што ће учинити је да врати све људе које имамо на мапи (пеопле.валуес ()). Нема великих компликација.

аддПерсонКористи се за додавање особе у нашу колекцију, можете видети да је параметар који имамо означен @РекуестБоди, је оно што добијамо од клијента (тело захтева). Белешка

 @РеспонсеСтатус (ХттпСтатус.ЦРЕАТЕД)
Постављено је да врати 201 као код одговора. У телу се може видети како се сваки пут када се позове ид повећава за један, тако да је јединствен и додељујемо га особи, затим га додајемо на мапу и на крају тело одговора функције је исто особа.

гетПерсонТражена особа ће нам бити враћена путем ИД -а. Овде имамо да се функција враћа

 РеспонсеЕнтити
Ово је за повратак а Добро и лице у случају да постоји или а НИЈЕ ПРОНАЂЕН. Параметар је овде означен са @ПатхВариабле, тај параметар ће имати вредност {ид} које видите у РекуестМаппинг и то је оно што смо ставили у УРЛ, на пример / пеопле / 1 позива ову функцију са ИД -ом у 1.

БелешкаМожете поставити напомену РекуестМаппинг тачно изнад класе, као што сам приказао испод:

 @РестЦонтроллер @РекуестМаппинг ("/ пеопле") јавна класа ПерсонаЦонтроллер {…}
Ако то учините, избећи ћете понављање људи у свакој методи и можете једноставно поставити следеће:
 @РекуестМаппинг (валуе = "/", метход = РекуестМетход.ГЕТ) 
Ако постоји неколико метода, можда се не исплати, али за многе је то свакако најбоља опција.

Па, завршили смо овај мали АПИ.

4. Како покренути пројекат
Да бисте покренули пројекат, изаберите свој пројекат, на траци са менијима видећете бели троугао унутар зеленог круга (уобичајено покретање у еклипси), кликните на мали црни троугао са десне стране, идите на Рунес и кликните на Спринг Боот апликација.

ЕНЛАРГЕ

[цолор = # а9а9а9] Кликните на слику за повећање [/ цолор]

Сада, ако желите да проширите пример, препоручујем да додате методе за послуживање захтева СТАВИТИ И ДЕЛЕТЕ, мораћете да знате ид особе коју желите да измените, па ћете је примити као у последњој функцији, а у ПУТ -у ћете такође морати да пошаљете податке као што смо то учинили у функцији ПОСТ.

Ако желиш тестирајте свој РЕСТ АПИ без потребе програмирања клијента за слање захтева можете користити поштара, то је додатак за Гоогле Цхроме:

Овде можете изабрати врсту захтева који желите, попунити заглавља и тело које се мора послати, ако захтева потврду идентитета итд. То је веома комплетан програм.

ЕНЛАРГЕ

[цолор = # а9а9а9] Кликните на слику за повећање [/ цолор]

На пример, захтев за добијање да сви људи у АПИ -ју раде на лоцалхост -у и слушају на порту 80:

Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave