1-бөлүк: REST деген эмне Бул бөлүктө биз кардар менен serverдин ортосунда байланыш кандай болорун кененирээк карап чыгабыз. Жолдо жаңы терминдерди ачып, аларга түшүндүрмөлөрдү беребиз. Баары түшүнүктүү болушу үчүн, биз RESTful тиркемесинин мисалында кардар менен serverдин байланышын талдайбыз. Биз кардарлар жана алардын буйрутмалары тууралуу маалыматты сактоого жөндөмдүү веб тиркемесин иштеп жатабыз дейли. Ошол. биздин система кээ бир an objectтерди манипуляциялоого жөндөмдүү: аларды түзүү, түзөтүү, жок кылуу жана алар жөнүндө маалымат берүү. Бул субъекттер болот:
- кардарлар - кардарлар;
- заказдар - кардарлардын заказдары;
- буюмдар - товарлар.
Суранычтар
Кардардын сурамдары дээрлик дайыма HTTP аркылуу жасалат. Жалпысынан, HTTP сурамдары бир нече компоненттерден турат:- HTTP ыкмасы;
- аталышы;
- URI;
- суроо орган.
URI жана ресурстар
Кардарлар сурамдар аркылуу алган же өзгөрткөн маалыматтар ресурстар деп аталат. Кардар менен serverдин өз ара аракеттенүүсүнүн негизи ресурстарды манипуляциялоо болуп саналат. RESTдеги ресурстар - бул ат бериле турган бардык нерсе. Бул кандайдыр бир мааниде Javaдагы класстарга окшош. Javaда биз каалаган нерсе үчүн класс түзө алабыз. RESTте да ушундай - ресурс каалаган нерсе болушу мүмкүн: колдонуучу, document, отчет, буйрук. Мунун баары кандайдыр бир an objectтин абстракциясы же конкреттүү нерсе болушу мүмкүн, мисалы, файл - сүрөт, видео, анимация, PDF файл. Биздин мисал үчүн бизде 3 ресурс бар:- кардарлар - кардарлар;
- заказдар - кардарлардын заказдары;
- буюмдар - товарлар.
- /кардарлар - бардык учурдагы кардарлардын URI;
- /кардарлар/23 - конкреттүү кардардын URI, тактап айтканда ID=23 менен кардар;
- /кардарлар/4 - белгилүү бир кардардын URI, тактап айтканда ID=4 менен кардар.
- /кардарлар/4/заказдар — №4 кардардын бардык заказдарынын URI;
- /кардарлар/1/буйруктар/12 - №1 кардардын №12 буйругунун URI.
- /кардарлар/1/заказдар/12/пункттар — №1 кардар тарабынан жасалган №12 буйрутмадагы бардык продукциялардын тизмесинин URI.
HTTP ыкмасы
HTTP методу (англисче HTTP Method) – бул ресурстагы негизги операцияны көрсөткөн башкаруу элементтеринен жана бөлгүчтөрдөн башка бардык символдордун ырааттуулугу. Бир нече жалпы HTTP ыкмалары бар. Биз RESTful кызматтарында эң көп колдонулгандарды тизмектейбиз:- GET - белгилүү бир ресурс (ID аркылуу) же ресурстардын жыйнагы жөнүндө маалымат алуу үчүн колдонулат;
- POST - жаңы ресурсту түзүү үчүн колдонулат;
- PUT - ресурсту өзгөртүү үчүн колдонулат (ID аркылуу);
- DELETE - ресурсту жок кылуу үчүн колдонулат (ID аркылуу).
рубрикалар
Сурамдар, ошондой эле жооптор HTTP аталыштарын камтыйт. Алар суроо-талап (же жооп) жөнүндө кошумча маалымат жөнөтүшөт. Башкылар ачкыч-маани жуптары. Сиз Wikipedia баракчасынан эң кеңири таралган рубрикалардын тизмесин окуй аласыз . REST менен кардарлар көбүнчө serverге өздөрүнүн суроо-талабында Кабыл алуу башын жөнөтө алышат. Бул serverге кардар андан кандай форматта жооп күтөрүн бorши керек. Ар кандай формат параметрлери MIME түрү деп аталган тизмеде берилген. MIME (көп максаттуу Интернет почта кеңейтүүлөрү) маалыматты codeдоо жана билдирүүлөрдү Интернет аркылуу жөнөтүү үчүн форматтоо үчүн спецификация. Ар бир MIME түрү сызык менен бөлүнгөн эки бөлүктөн турат: тип жана субтип. Ар кандай типтеги файлдар үчүн MIME типтеринин мисалдары:- текст - текст/жөнөкөй, текст/css, текст/html;
- сүрөт - сүрөт/png, сүрөт/jpeg, сүрөт/gif;
- аудио - аудио/wav, аудио/mpeg;
- видео - video/mp4, video/ogg;
- колдонмо - колдонмо/json, колдонмо/pdf, колдонмо/xml, колдонмо/октет-агым.
Accept:application/json
Бул аталыш serverге кардар JSON форматында жооп алууну күтөрүн билдирет.
Сурам органы
Кардар serverге жөнөткөн билдирүү. Сурамдын денеси барбы же жокпу HTTP сурамынын түрүнөн көз каранды. Мисалы, GET жана DELETE суроо-талаптары, адатта, эч кандай суроо-талапты камтыbyte. Бирок PUT жана POST камтышы мүмкүн: бул сурам түрүнүн функционалдык максаты жөнүндө. Анткени, маалыматтарды алуу жана аны id (URL дарегинде берилет) боюнча жок кылуу үчүн serverге кошумча маалыматтарды жөнөтүүнүн кереги жок. Бирок жаңы ресурсту (POST суроо-талабын) түзүү үчүн бул ресурсту өткөрүп беришиңиз керек. Ошол эле учурдагы ресурсту өзгөртүүгө да тиешелүү. RESTте XML же JSON форматтары көбүнчө сурамдын негизги бөлүгүн өткөрүү үчүн колдонулат. Эң кеңири таралган формат JSON. Биз serverге суроо-талап жөнөткүбүз келет дейли жана анда жаңы ресурс түзөбүз. Эсиңизде болсо, мисал катары биз кардарлардын заказдарын башкарган тиркемени карадык. Келгиле, биз жаңы кардар түзгүбүз келет дейли. Биздин учурда, биз кардарлар жөнүндө төмөнкү маалыматты сактайбыз: Аты-жөнү Электрондук почта Телефон номери Анда мындай суроо-талаптын негизги бөлүгү төмөнкү JSON болушу мүмкүн:{
"name" : "Amigo",
"email" : "amigo@jr.com",
"phone" : "+7 (191) 746-43-23"
}
Сурамдарды бириктирүү
Ошентип, биз кардардын суроо-талабы эмнеден турушу мүмкүн экенин карап чыктык. Келгиле, азыр сыпаттамасы менен сурамдардын кээ бир мисалдарын берелиСураныч | Description |
---|---|
|
Json же xml форматындагы №23 кардар тууралуу маалымат алыңыз |
|
Төмөнкү талаалар менен жаңы кардарды түзүңүз: Аты-жөнү - Amigo Email - amigo@jr.com Тел. — +7 (191) 746-43-23 |
|
№1 кардарды төмөнкүдөй түзөтүңүз: Аты-жөнү - Ben Email - bigben@jr.com Тел. — +380 (190) 346-42-13 |
|
Системадан №12 кардардын №6 буйругун өчүрүү |
Жооптор
Сервердин жооптору жөнүндө бир нече сөз айталы. Жооп адатта төмөнкү бөлүктөрдөн турат:- жооп codeу;
- баштар;
- жооп орган.
HTTP жооп codeдору
Келгиле, HTTP жооп codeдорун кененирээк карап чыгалы. Бул жерде Википедиядан цитата келтирилген: HTTP статус codeу HTTP протоколу аркылуу суроо-талаптарга serverдин жооп берүүсүнүн биринчи сабынын бир бөлүгү. Бул үч ондук сандан турган бүтүн сан. Биринчи цифра шарттын классын көрсөтөт. Жооптун codeу, адатта, англис тorнде боштук менен бөлүнгөн түшүндүрмө сөз айкашы менен коштолот, ал адамга ушул өзгөчө жооптун себебин түшүндүрөт. Мисалдар:- 201 Created;
- 401 Уруксатсыз;
- 507 Сактагыч жетишсиз.
- 1ХХ - маалыматтык;
- 2ХХ - кардардын суроо-талабын ийгorктүү кабыл алуу жана иштеп чыгуу учурлары жөнүндө маалымдайт;
- 3XX - кардарга операцияны ийгorктүү аяктоо үчүн, адатта, башка URIди колдонуу менен, дагы бир суроо-талапты берүү зарыл экендигин билдирүү;
- 4ХХ - кардар катасы. Мисалы, туура эмес түзүлгөн суроо же белгилүү 404 Табылган code, кардар жок ресурсту сураганда пайда болушу мүмкүн;
- 5ХХ - server катасы. Эгерде операция serverдин күнөөсү боюнча ишке ашпай калса, кардарга кайтарылат.
GO TO FULL VERSION