● HTTP
○ Definisi
○ Konsep
● API
○ Definisi
○ Verb
Pokok Bahasan ○ Status Code
○ Request
○ Response
○ Best Practice
HTTP
Definisi
Referensi :
https://www.jagoanhosting.com/blog/http-adalah/
Konsep
HTTP Request
HTTP Response
Fungsi
Referensi :
https://www.jagoanhosting.com/blog/http-adalah/
API
Definisi
Referensi:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
➡
Request
https://api.arkatama.id/v1/posts?tags=javascript
➡
Request
Request Params/
Request Body Request Header
Query Params
Request
Request Body
Request
form-data
Data yang dikirim dalam format ini dikirim dalam bagian body
permintaan POST dan dikodekan dalam bentuk multiparts, di
mana setiap pasangan key-value diberi tanda batas dan
dipisahkan oleh pembatas.
Request Body Format ini biasanya digunakan untuk mengirim data form seperti
gambar, file, dan input teks.
https://www.baeldung.com/postman-form-data-raw-x-www-form-
urlencoded
Request
x-www-form-urlencoded
Data dikirim sebagai string yang dikodekan dalam format URL-
encoded, di mana karakter khusus seperti spasi dan tanda koma
dikodekan sebagai karakter ASCII yang khusus.
https://www.baeldung.com/postman-form-data-raw-x-www-form-
urlencoded
Request
raw
Data dikirim sebagai teks mentah tanpa pengkodean atau format
khusus, seperti JSON atau XML
https://www.baeldung.com/postman-form-data-raw-x-www-form-
urlencoded
Request
Request Header
Request Params/
Query Params
Referensi : https://apipheny.io/what-are-api-parameters/
Response
JSON
JSON merupakan singkatan dari Javascript Object Notation, salah satu bentuk data dalam transfer data
atau pengiriman data. JSON dinyatakan lebih cepat dari XML karena bentuk datanya yang simple.
XML
XML merupakan singkatan dari eXtensible Markup Language, salah satu bentuk data dalam
transfer data atau pengiriman data. XML dinyatakan lebih powerful dari JSON karena bentuk
datanya yang kompleks.
Response
JSON XML
Best Practice
1. Endpoint menggunakan kata benda bukan kata kerja
/getAllProducts
Don’t❌ /getAllProductsByCategory/1
Referensi:
https://www.freecodecamp.org/news/rest-api-best-practices-rest-endpoint-design-ex
amples/
Best Practice
2. Gunakan kata benda berbentuk jamak
/product
Don’t❌ /product/1
Referensi:
https://www.freecodecamp.org/news/rest-api-best-practices-rest-endpoint-design-ex
amples/
Best Practice
3. Gunakan status code untuk handle error
/posts/1/comments
Contoh: ➡ ambil semua comments yang ada di posts dengan id 1
Referensi:
https://www.freecodecamp.org/news/rest-api-best-practices-rest-endpoint-design-ex
amples/
Best Practice
5. Gunakan Filtering, Sorting atau Pagination untuk ambil data sesuai request
Filtering /posts?tags=javascript
Sorting /posts?sortBy=date_created&sortIn=DESC
Pagination /posts?page=1
Referensi:
https://www.freecodecamp.org/news/rest-api-best-practices-rest-endpoint-design-ex
amples/
Best Practice
6. Gunakan Versioning yang jelas
api/v1/posts ➡ versi 1
Contoh: api/v2/posts ➡ versi 2
Referensi:
https://www.freecodecamp.org/news/rest-api-best-practices-rest-endpoint-design-ex
amples/
Terima kasih