JavaRush /Blog Jawa /Random-JV /Ringkesan REST. Part 1: Apa REST

Ringkesan REST. Part 1: Apa REST

Diterbitake ing grup
Halo, dina iki kita bakal sinau topik sing menarik banget, lan sing paling penting, topik sing dikarepake ing pasar tenaga kerja - REST. Ringkesan REST.  Bagean 1: Apa REST - 1Kita bakal ngilangi ringkesan REST dadi telung bagean:
  1. Ing bagean pisanan, kita bakal ndemek sejarah REST lan njlèntrèhaké prinsip-prinsip sing adhedhasar REST.

  2. Ing kaloro, kita bakal ndeleng kepiye komunikasi antarane klien lan server liwat protokol HTTP.

  3. Ing katelu, kita bakal nulis aplikasi RESTful cilik, sing bakal diuji nggunakake program Postman.

Artikel kasebut ditujokake kanggo maca sing ngerti istilah-istilah ing ngisor iki:
  • HTTP;
  • URL lan URI;
  • JSON lan XML sing luwih cilik;
  • Injeksi Ketergantungan.

Part 1. Apa REST

REST, kaya akeh perkara ing jagad IT, minangka akronim kanggo Representational State Transfer . Iki minangka gaya arsitektur interaksi antarane komponen sistem sing disebarake ing jaringan komputer. Cukup, REST nemtokake gaya interaksi (ijol-ijolan data) ing antarane komponen sistem sing beda-beda, sing saben-saben bisa uga ana ing papan sing beda. Gaya arsitektur iki nggambarake kendala sing konsisten sing dianggep nalika ngrancang sistem sing disebarake. Watesan iki kadhangkala disebut prinsip REST. Ora akeh, mung 6 potong. Kita bakal ngomong babagan dheweke mengko.
Aplikasi dibangun karo REST ing atine, i.e. sing ora nglanggar watesan sing ditindakake REST diarani RESTful.

Sejarah saka REST

Istilah REST diciptakake dening Roy Fielding, salah sawijining pencipta protokol HTTP, ing disertasi doktoral "Gaya Arsitektur lan Desain Arsitektur Perangkat Lunak Berbasis Jaringan" ing taun 2000. Kita bisa ngomong yen istilah REST isih enom, sanajan konsep kasebut dumunung ing basis saka World Wide Web. Kita ora bakal nyilem jero sejarah asal-usul istilah iki. Yen sampeyan pengin nyilem menyang sumber asli, deleng disertasi Fielding .

Watesan lan prinsip REST

Kaya kasebut ing ndhuwur, REST nemtokake cara komponen sistem sing disebarake kudu sesambungan karo siji liyane. Umumé, iki kedadeyan liwat request-response. Komponen sing ngirim panjalukan diarani klien ; Komponen sing ngolah panyuwunan lan ngirim respon menyang klien diarani server . Panjaluk lan tanggapan paling kerep dikirim liwat HTTP (HyperText Transfer Protocol). Biasane, server minangka sawetara jinis aplikasi web. Klien bisa ora mung apa wae, nanging cukup akeh. Contone, aplikasi seluler sing njaluk data saka server. Utawa browser sing ngirim panjalukan saka kaca web menyang server kanggo ngundhuh data. Aplikasi A bisa njaluk data saka aplikasi B. Banjur A minangka klien sing ana hubungane karo B, lan B minangka server sing ana hubungane karo A. Ing wektu sing padha, A bisa ngolah panjalukan saka C, D, D, lsp. Ing kasus iki, aplikasi A minangka server lan klien. Iku kabeh gumantung ing konteks. Siji bab sing jelas: komponen sing ngirim panjalukan yaiku klien. Komponen sing nampa, ngolah lan nanggapi panjaluk kasebut yaiku server. Nanging, ora saben sistem sing komponen komunikasi liwat request-response minangka sistem REST (utawa RESTful). Kanggo sistem sing dianggep RESTful, sistem kasebut kudu "cocog" enem watesan REST:

1. Nggawa arsitektur kanggo model klien-server

Basis watesan iki yaiku diferensiasi kabutuhan. Sampeyan perlu kanggo misahake kabutuhan antarmuka klien saka kabutuhan server sing nyimpen data. Watesan iki nambah portabilitas kode klien menyang platform liyane, lan simplifikasi bagean server nambah skalabilitas sistem. Bentenane banget antarane "klien" lan "server" ngidini dheweke bisa berkembang kanthi mandiri.

2. Kurang kahanan

Arsitektur REST mbutuhake syarat ing ngisor iki. Antarane panjalukan, server ora perlu kanggo nyimpen informasi bab negara klien lan kosok balene. Kabeh panjalukan saka klien kudu disusun supaya server nampa kabeh informasi sing dibutuhake kanggo ngrampungake panjaluk kasebut. Kanthi cara iki, loro server lan klien bisa "ngerti" pesen sing ditampa tanpa ngandelake pesen sadurunge.

3. Caching

Klien bisa cache respon server. Iki, ing siji, kudu tegas utawa implisit ditetepake minangka cacheable utawa uncacheable, supaya klien ora nampa stale utawa data salah kanggo nanggepi panjalukan sakteruse. Panggunaan cache sing tepat mbantu ngilangi sawetara interaksi klien-server, kanthi lengkap utawa sebagian, nambah kinerja lan ekstensibilitas sistem.

4. Keseragaman antarmuka

Persyaratan dhasar arsitektur REST kalebu antarmuka sing seragam lan seragam. Klien kudu tansah ngerti format apa lan alamat sing kudu ngirim panjalukan, lan server, uga kudu ngerti format apa sing kudu ditanggapi panjaluk klien. Iki minangka format terpadu kanggo interaksi klien-server, sing njlèntrèhaké apa, ing ngendi, ing wangun apa lan cara ngirim lan minangka antarmuka terpadu

5. Lapisan

Lapisan nuduhake struktur hirarkis jaringan. Kadhangkala klien bisa komunikasi langsung karo server, lan kadhangkala mung bisa komunikasi karo simpul penengah. Panggunaan server penengah bisa nambah skalabilitas liwat load balancing lan caching sing disebarake. Ayo menehi conto. Coba bayangake aplikasi seluler sing populer ing saindenging jagad. Bagean integral yaiku ngemot gambar. Amarga ana mayuta-yuta pangguna, siji server ora bisa nahan beban sing abot. Dibagi sistem dadi lapisan bakal ngatasi masalah iki. Klien bakal njaluk gambar saka simpul penengah, simpul penengah bakal njaluk gambar saka server sing paling ora dimuat ing wektu iki, lan bakal ngasilake gambar kasebut menyang klien. Yen caching ditrapake kanthi bener ing saben level hierarki, mula skalabilitas sistem sing apik bisa digayuh.

6. Kode on demand (watesan opsional)

Watesan iki nuduhake yen klien bisa nggedhekake fungsine kanthi ndownload kode saka server ing wangun applet utawa skrip.

Keuntungan saka REST

Aplikasi sing tundhuk karo kabeh watesan ing ndhuwur duwe kaluwihan ing ngisor iki: linuwih (ora perlu nyimpen informasi negara klien, sing bisa ilang);
  • kinerja (amarga nggunakake cache);
  • skalabilitas;
  • transparansi sistem interaksi;
  • kesederhanaan antarmuka;
  • portabilitas komponen;
  • gampang nggawe owah-owahan;
  • kemampuan kanggo berkembang, adaptasi karo syarat anyar.
Part 2: komunikasi antarane klien lan server Part 3: nggawe layanan RESTful ing Spring Boot
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION