REST API?

Sebelum masuk kedalam bahasan tentang REST API。 Saya akan membahas sedikit tentang 软件体系结构,客户端Dan服务器。 Mengapa ketiga elemen tersebut harus diketahui karena semua itu akan saling terhubung dan saling berkaitan antar satu dengan yang lainnya。

软件架构

软件体系结构 adalah struktur sistem dari suatu程序atau sistem komputer yang terdiri dari komponen-komponen tersebut,serta hubungan antar komponen tersebut。 Istilah ini juga merujuk pada dokumentasi arsitektur perangkat lunak suatu sistem(id.wikipedia.org)

Jadi sebuah arsitektur perangkat lunak( 软件体系结构 )merupakan sebuah struktur tertinggi dari sebuah sistem perangkat lunak。 Sama seperti arsitektur bangunan yang mempunyai susunan mulai dari tankasi,bangunan dan ataping hingga menjadi sebuah bangunan yang kokoh begitu juga untuk sebuah perangkat lunak。

Sebuah perangkat lunak dapat bekerja karena ada struktur dibelakanglayar yang mendukung perangkat lunak tersebut berfungsi。 Arsitektur perangkat lunak yang akan membuat sebuah perangkat lunak dapat dipakai oleh semua orang yang ada di Internet。 Ketika sebuah perangkat lunak berjalan akan ada pertukaran data yang terjadi。

客户端服务器

Seperti yang telah dibahas sebelumnya ketika software / perangkat lunak dijalankan terjasi sebuah pertukaran data atau informationasi。 向Tersebut Terjadi antara dua pihak yaitu antara客户端dan服务器发送请求。

https://www.airman7.com/2018/client-server-dan-peer-to-peer/

klien 服务器 atau 客户机服务器 merupakan sebuah paradigma dalam teknologi通知yaru melujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak:pihak klien dan pihak服务器。(id.wikipedia.org)

Dalam模范克林人/服务器,sebuah aplikasi dibagi menjadi dua bagian yang terpisah,tetapi masih merupakan sebuah kesatuan yakni komponen klien dan komponen服务器。 Komponen klien juga sering禁止使用sebagai 前端 ,sementara komponen服务器禁止使用sebagai 后端 。

https://humanwhocodes.com/blog/2013/10/07/node-js-and-the-new-web-front-end/

Komponen klien dari aplikasi tersebut dijalankan dalam sebuah工作站dan menerima masukan data dari pengguna。 Komponen klien tersebut akan menyiapkan数据yang杨dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan mengirimkannya kepada komponen服务器yang dijalankan di atas mesin服务器,umumnya dalam bentuk diyangh yangyang jahhhhhap beberapalayan请求。

Komponen服务器akan menerima请求dari klien,dan langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada klien。 Klien pun menerima informationasi hasil pemrosesan数据yang dilakukan服务器dan menampilkannya kepada pengguna,dengan menggunakan aplikasi yang berinteraksi dengan pengguna。

REST API

https://blog.fossasia.org/unit-tests-for-rest-api-in-python-web-application/

REST(Representational State Transfer)货币标准网yang sering diterapkan dalam pengembanganlayanan berbasis web。 Umumnya menggunakan HTTP(超文本传输​​协议)sebagai协议untuk komunikasi数据。 REST pertama kali diperkenalkan oleh Roy Fielding pada tahun 2000。

Pada arsitek REST,REST服务器资源(daya / data)和REST客户端,其余REST客户端,biasanya资源direpresentasikan berupa数据,yang berbentuk JSON atau XML,pada umumnya formatnya menggunkan JSON dan XML。

Dari beberapa sumber bahwa terdapat kelemahan dan kelebihan dari penggunaan REST ini:

Kelemahan REST:

1. Mengasumsi模型点对点komunikasi — tidak dapat digunakan untuk lingkungan komputasi terdistribusi di mana pesan akan melalui satu atau lebih perantara。
2.Kurangnya dukungan standar untuk keamanan,kebijakan,keandalan pesan,dll,sehinggalayanan yang mempunyai persyaratan lebih canggih lebih sulit untuk dikembangkan(“ dipecahkan sendiri”)。
3.Berkaitan dengan模型传输HTTP。 ( codepolitan.com )

Kelebihan REST:

1.Bahasa dan平台不可知。
2. Lebih sederhana / simpel untuk dikembangkan ketimbang SOAP。
3. Mudah dipelajari,tidak bergantung pada工具。
4. Ringkas,tidak membutuhkan层pertukaran pesan(消息传递)tambahan。
5. Secara desain dan filosofi lebih dekat dengan web。( codepolitan.com )

Berikut metode HTTP yang umum digunakan dalam arsitektur berbasis REST。

GET ,menyediakan hanya akses baca pada 资源。
PUT ,digunakan untuk menciptakan 资源 baru。
删除, digunakan untuk menghapus 资源。
POST, digunakan untuk memperbarui 资源 yang ada atau membuat 资源 baru。

卡拉·克雷娅·雷斯特(Cara Kerja REST)

Sebuah客户端mengirimkan sebuah数据atau请求melalui ** HTTP请求** dan kemudian服务器merespon melalui HTTP响应。 Komponen dari http请求:

1.动词,HTTP方法yang digunakan misalnya GET,POST,DELETE,PUT dll。
2.统一资源标识符(URI)统一资源服务器。
3.HTTP版本,menujukkan versi dari HTTP yang digunakan,contoh HTTP v1.1。
4.Request标头,berisi元数据和HTTP请求。 继续,键入客户端/浏览器,格式化yang didukung oleh客户端,格式化dari body pesan,设置缓存dll。
5.Request正文,konten dari数据。

Sedangkan komponen dari http回应:
1.Status / Response Code,状态服务器响应资源请求。 misal:404,artinya resource tidak ditemukan dan 200响应还可以。
2.HTTP版本,menunjukkan版本HTTP yang digunakan,contoh HTTP v1.1。
3.Response标头,berisi元数据和HTTP响应。 Contoh,类型服务器,panjang内容,tipe内容,waktu响应,dll
4,Response Body,konten dari data yang diberikan。

HTTP响应码

HTTP响应代码adalah kode standarisasi dalam menginformasikan hasil请求kepada客户端。 Secara umum terdapat 3 kelompok yang biasa kita jumpai pada RESTful API Yaitu:

1.2XX:adalah响应代码yang menampilkan bahwa请求berhasil。
2.4XX:adalah响应代码yang menampilkan bahwa请求mengalami kesalahan pada sisi客户。
3.5XX:adalah响应代码yang menampilkan bahwa请求mengalami kesalahan pada sisi服务器。

Dan berikut ini adalah响应代码yang biasa digunakan pada REST:

200 OK
响应代码ini menandakan bahwa请求yang dilakukan berhasil。

创建了201
响应代码ini menandakan bahwa请求yang dilakukan berhasil dan data telah dibuat。 Kode ini digunakan untuk mengkonfirmasi berhasilnya请求PUT atau POST。

400错误的要求
响应代码ini menandakan bahwa请求yang dibuat salah atau data yang dikirim tidak ada。

401未经授权
响应代码ini menandakan bahwa请求yang dibuat membutuhkan认证sebelum mengakses资源。

找不到404
响应代码ini menandakan bahwa资源yang di dipanggil tidak ditemukan。

405不允许的方法
响应代码ini menandakan bahwa请求端点ada tetapi metode HTTP yang digunakan tidak diizinkan。

409冲突
响应代码ini menandakan bahwa请求yang dibuat terdapat duplikasi,biasanaya notifyasi yang dikirim sudah ada sebelumnya。

500内部服务器错误
响应代码ini menandakan bahwa请求yang dilakukan terdapat kesalahan pada sisi服务器atau资源。

格式回应

Setiap请求yang dilakukan客户端akan menerima数据响应dari服务器,响应tersebut biasanya berupa数据XML ataupun JSON。 Setelah Mendapatkan数据响应tersebut barulah客户bisa menggunakannya dengan cara整理数据tersebut dan diolah sesuai kebutuhan。

烧瓶框架

Setelah mengetahui tentang REST API编码REST API dengan框架Flask。

Flask Adalah kerangka kerja aplikasi web mikro yang ditulis dalam bahasa pemrograman Python dan berdasarkan Werkzeug toolkit dan template engine Jinja2 。 Berlisensi BSD。(id.wikipedia.org)

Flask展示了微结构 Karena Tidak Membutuhkan alat-alat tertentu atau pustaka。 烧瓶tidak memiliki 数据库抽象层 , 有效性形式 ,空间,层次结构。

纳蒙(Namun),烧瓶(Flask mendukung ekstensi yang dapat),烧瓶(Silkah-olah mereka) Ekstensi yang ada untuk 对象关系映射器 , validasi形式 ,penanganan unggahan,berbagai teknologi otentikasi terbuka,dan beberapa alat-lata yang terkait kerangka umum。 Ekstensi diperbarui jauh lebih teratur daripada inti程序烧瓶。

推荐人:

https://id.wikipedia.org/wiki/烧瓶

https://gitlab.com/Bootcamp-Makers/backend/blob/master/pengenalan-rest-api/cara-kerja-restful-web-services.md

https://www.codepolitan.com/mengenal-restful-web-services

https://id.wikipedia.org/wiki/Klien-server

https://id.wikipedia.org/wiki/Arsitektur_perangkat_lunak