Metode HTTP SEARCH yang Baru
(httptoolkit.tech)-
Pengenalan metode SEARCH yang ditambahkan sebagai draft baru di IETF
-
Untuk mengambil data yang kompleks, hanya menggunakan GET/POST yang ada selama ini tidak efisien
SEARCH /customers HTTP/1.1
Host: example.com
Content-Type: application/sql
SELECT username, email
WHERE DATEDIFF(DAY, GETDATE(), signup_date) > 7
-
Ini bukan berarti pernyataan SQL benar-benar digunakan sebagai standar, melainkan konten seperti ini untuk pencarian bisa dimasukkan ke dalam request body
-
Dengan ini, untuk satu URL yang sama, GET, POST, dan SEARCH semuanya menjadi bisa digunakan
-
Melalui header Accept-Search, format yang digunakan untuk pencarian dapat ditentukan :
→ Accept-Search: application/sql, application/graphql
- Berdasarkan standar metode SEARCH yang ada di WebDAV (rfc5323)
9 komentar
OData adalah spesifikasi untuk melakukan kueri dengan cara yang hampir mirip seperti ini. Namun, bisa menggunakan application/sql dan application/graphql pada endpoint yang sama.. agak sulit dibayangkan.
Kegunaannya sendiri tampaknya untuk kasus ketika mengeksekusi SQL secara langsung itu bermasalah, dan seperti Elasticsearch, secara semantik ini adalah
GET, tetapi kita ingin melakukan kueri dengan menyertakan HTTP Body.Pada bagian awal tulisan disebutkan "it was recently adopted as an IETF draft standard", apakah yang dimaksud dengan recently di sini memang tahun 2015? Draf yang saya lihat adalah https://tools.ietf.org/html/draft-snell-search-method-00, jadi saya penasaran apakah ada perubahan yang lebih baru.
https://datatracker.ietf.org/doc/… adalah.
Baru-baru ini diunggah pada 2021-03-31.
Kalau ingin mengirim informasi di body, sepertinya harus memakai PUT atau POST.
Keduanya tidak bisa menggunakan cache, jadi
mungkin juga bisa memakai yang namanya SEARCH.
Bagaimanapun, cukup kirim hanya saat sudah di-accept.
Mengingat arah untuk memperbaiki ketidaknyamanan pada get dan post, saya jadi teringat GraphQL.
Begitu mulai mengirim kueri lewat request body, rasanya pada suatu saat nanti bisa muncul masalah seperti SQL Injection (kalau situsnya dibuat tanpa banyak dipikirkan)..
Sepertinya bisa dipahami sebagai semacam GET dengan body. Bagaimanapun, validasi untuk body tetap harus dilakukan...
Begitulah..