Anda di halaman 1dari 30

HTTP dan API

● HTTP
○ Definisi
○ Konsep
● API
○ Definisi
○ Verb
Pokok Bahasan ○ Status Code
○ Request
○ Response
○ Best Practice
HTTP
Definisi

Hypertext Transfer Protocol (HTTP) adalah protokol jaringan lapisan aplikasi


yang digunakan untuk membantu proses pertukaran data dalam internet antar
komputer satu dengan lainnya.

Referensi :
https://www.jagoanhosting.com/blog/http-adalah/
Konsep

HTTP Request

HTTP Response
Fungsi

● Mengatur format dan bagaimana data ditransmisikan


● Mengatur bagaimana web server dan browser mengelola perintah masuk yang
bermacam-macam
● Menghindarkan data kamu dari ancaman peretas dan pencurian data. Ini
dibuktikan dengan adanya protokol HTTPS yang menjanjikan keamanan lebih
dibandingkan HTTP, meskipun fungsinya sama

Referensi :
https://www.jagoanhosting.com/blog/http-adalah/
API
Definisi

API merupakan singkatan dari Application Programming Interface,

berfungsi sebagai penghubung antara satu aplikasi dengan aplikasi lainnya


Verb

GET POST PUT PATCH DELET


(Read) (Create) (Update) E
(Delete)

List Verb/Method yang lain :


https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
Status Code
List of HTTP Code
1XX 4XX
100 Continue 400 Bad Request 425 Too Early
101 Switching Protocol 401 Unauthorized 426 Upgrade Required
103 Early Hints 402 Payment Required 428 Precondition Required
403 Forbidden 429 Too Many Request
2XX 404 Not Found
405 Method Not Allowed
431 Request Header Fields too large
200 OK 451 Unavailable for Legal Reason
406 Not Acceptable
201 Created
407 Proxy Authentication Required
202 Accepted
408 Request Timeout
203 Non-Authoritative Information
204 No Content
409 Conflict 5XX
410 Gone 500 Internal Server Error
205 Reset Content
411 Length Required 501 Not Implemented
206 Partial Content
412 Precondition Failed 502 Bad Gateway
413 Payload too large 503 Service Unavailable
3XX 414 URI too long 504 Gateway Timeout
300 Multiple Choices 415 Unsupported Media Type 505 HTTP Version not Supported
301 Moved Permanently 416 Range not satisfiable 506 Variant also Negotiates
302 Found 417 Expectation Failed 507 Insufficient Storage
303 See Other 418 I’m a Teapot 508 Loop Detected
304 Not Modified 422 Unprocessable Entity 510 Not Extended
307 Temporary Redirect 511 Network Authentication Required
308 Permanent Redirect

Referensi:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

Request

https://api.arkatama.id/v1/posts?tags=javascript

Protokol Base url Versi API Endpoint Query Params


Request

Request Params/
Request Body Request Header
Query Params
Request

Request Body digunakan untuk mengirim data dari client ke API

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.

Format ini umumnya digunakan untuk mengirim data form


Request Body sederhana seperti nama dan email.

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

Format ini digunakan ketika membutuhkan kontrol penuh


terhadap isi permintaan POST.
Request Body

https://www.baeldung.com/postman-form-data-raw-x-www-form-
urlencoded
Request

Request Header digunakan untuk mengirim informasi request,


sehingga API server bisa menyesuaikan response.

Request Header

List Request Header yang bisa digunakan :


https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
Request

Request Params digunakan untuk mengirim opsi yang


diteruskan melalui endpoint untuk mempengaruhi respon data

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

/products ➡ ambil semua data product


Do✅ /products/1 ➡ ambil data product dengan
id 1

/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

/products ➡ ambil semua data product


Do✅ /products/1 ➡ ambil data product dengan
id 1

/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

Method Response code yang disarankan

GET success : 200 (OK)


error : 404 (Not Found), 400 (Bad Request)

POST success : 201 (Created)


successful failed : 200 (OK), 204 (No Content)
error : 500 (Internal Server Error)

PUT success : 200 (OK), 204 (No Content)


error : 404 (Not Found), 400 (Bad Request)

PATCH success : 200 (OK), 204 (No Content)


error : 404 (Not Found), 400 (Bad Request)

DELETE success : 200 (OK), 204 (No Content)


error : 404 (Not Found)

⬅ Kembali ke list status code Referensi:


https://www.freecodecamp.org/news/rest-api-best-practices-rest-endpoint-design-ex
amples/
Best Practice
4. Gunakan Nesting endpoint untuk menunjukkan relasi

/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

Anda mungkin juga menyukai