Numpang nyatet: 1. Response harus punya standar. 2. Selalu buat response sesuai standar 3. Status code (mungkin gausah di taro lagi) 4 Error technical / jangan terlalu explicit 5. Detail error lebih baik taro di log 6. Tiap request kasih ID, kalo bisa simpan requestmya.
pernah jg ngerjain satu fitur utk kirim whatsapp message. dari provider response 200 tp message gagal dikirim. message apinya pun blg sukses (ga ada indikasi gagal). pas cek ke dashboardnya ternyata gagal. wkwkwk
karena vendor perlu hit API whatsapp yang mungkin dibelakang prosesnya pake queue, jadi wajar kalau return 200. Yang perlu digaris bawahi, si vendor harus nyediain callback mechanism ketika message gagal dikirim, atau harus nyediain pooling API untuk get message statusnya
10:00 saya paham sih knapa kok lempar errornya itu satu2 Gak langsung semua username harus di isi dan password harus di isi Karena itu untuk kefektifan code aja sebenernya Jadi biar gak lama2 aja prosesnya. Hanya untuk request yg salah Dan rata2 error kayak "harus di isi" atau sejenisnya harusnya udah di validasi sebelum di kirim ke api di sisi client Jadi klo ada brute force dan itu tembus setidaknya udah kelempar error duluan Cmiiw
menurut saya, validasi kosong atau tidak itu kan "murah", karena ga sampai query ke DB, harusnya validasi basic itu divalidasi semua dulu, return all error. jenis data, string, number, min, max, required, in: list, dll. sementara untuk validasi yang harus query ke DB menurut saya "mahal", jadi setelah validasi basic baru saya validasi yang perlu query ke DB. opini saya saja ya.
@zeinadi karena dalam dunia payment gateway dan bank tiap ms itu berharga Makannya validasi di client Mereka berharap yg masuk ke server mereka ya yang benar2 fix Error2 kyk gitu cuman perlu ketika si merchant development. Begitu mereka selesai pasti ada uat tuh. Di sana di bahas dan di cek semua Belum lagi ada cek2 yg costly. Merchant id bener signature bener. Dll
Semoga pak Eko mengadakan sesi translate Sequence Diagram MVC ke kode (Foward Engineering). Dan menjadi konten kreator pertama dalam sejarah Indonesia membahas detail akan hal itu.❤
Saya kerja di industry perbankan yg semua response message nya menggunakan code. Bagi yg gak hapal/ gak tau kan jadi bingung yaa. Wkwk gatau kenapa gak di bikin spesifik ajaa error nya di mana, di banding pake Response Code. Apa karna format message nya menggunakan ISO 8583 yaa ? 😅
Maaf pak eko, kadang yg ada errorCode itu dipake client juga, yg di handle ui bisa berbeda-beda, klo general string message saja paling untuk yg di handle klo ui nya hanya menampilkan hasil validasi errornya tapi memang si, sebenenrya errorCodenya bisa lebih informatif misal string ACCOUNT_LOCKED, dibanding alphanumeric gajelas. tapi tetep itu butuh baca dokumentasinya jg
Kalau case nya itu query data tp data yg dicari user itu tidak ditemukan di database. Apa API yg direturn berstatus 404 dengan msg "Data not found" atau 200 dengan empty array (semisal return expectation nya array)?
pak , kalau pakai kode mungkin messange error nya untuk message yang dapat di modifikasi di frontend contohnya "password tidak boleh kosong" di sisi web , tapi di sisi mobile mau ubah ke "password wajib di isi"
bang ijin ngasih pendapat, klu dari segi perspektif saya kenapa errornya dikasih kode mungkin dari segi security untuk mencegah si hacker dari melihat celah keamanan. Klu dikasih dokumentasi kan yang paham ya antar developer yang telah bekerja sama. Mohon pencerahannya :)
Kadang gw sebagai FE sering nemuin status 200 tapi response error, ntah itu create error validation kah atau apapun itu, yang sulit di FE, biasanya handling error hanya pake try catch tapi kalau response ereor dari BE nya 200 malah masuk ke try 😅
ikut bantu jawab.. HTTP status code boleh pasang di body atau boleh jg tidak, tergantung standard yg dipake.. kalo pake standard RFC7807 di bodynya ada type, title, status, detail, instance.. mirip contoh response yg dipake sama penanya. cmiiw
@@dlandsvolka4046 wkwkwk iya bang, bikin hancur alur pelayanan kesehatan, kalo sistemnya sulit untuk implementasi di sebuah rs, itu main ancam gagal klaim, sedangkan mereka sendiri ngg pake layanan dari mereka sendiri wkwkwk
bagaimana best practice menghalde log error dan error message, terus bagaimana format error log yang baik, apa saja informasi yang harus dimasukan ? saya sudah menerpakah yang disarahkan di video tapi kadang masih bingung baca error message dari system yang terlalu umum tidak menjelaskan masalah aslinya.
tambahi pesan 'Your request has been failed successfully'
@@kurniawanyusuf9097 wkwkw 🤣
biar jelas
wkwkwkkw
Numpang nyatet:
1. Response harus punya standar.
2. Selalu buat response sesuai standar
3. Status code (mungkin gausah di taro lagi)
4 Error technical / jangan terlalu explicit
5. Detail error lebih baik taro di log
6. Tiap request kasih ID, kalo bisa simpan requestmya.
jadi ingat meme "task failed successfully"
Terimakasih sharing ilmu dan pengalamannya pak, sangat membantu bagi saya yang masih belajar.
dari kemaren bahas pertanyaan soal API kayaknya itu yang nanya developer coretax yang lagi nemu jalan buntu 😅
HAHAHAHA
syalan aku ketawa
pernah jg ngerjain satu fitur utk kirim whatsapp message. dari provider response 200 tp message gagal dikirim. message apinya pun blg sukses (ga ada indikasi gagal). pas cek ke dashboardnya ternyata gagal. wkwkwk
Eh tetep ditagih juga
itu namanya force success, biasanya karena dari hostnya pending. soalnya kalau di gagalin rugi
Udah sering protes ke bpjs gegara itu, res. header code 200 tapi res. body msg gagal
karena vendor perlu hit API whatsapp yang mungkin dibelakang prosesnya pake queue, jadi wajar kalau return 200. Yang perlu digaris bawahi, si vendor harus nyediain callback mechanism ketika message gagal dikirim, atau harus nyediain pooling API untuk get message statusnya
10:00 saya paham sih knapa kok lempar errornya itu satu2
Gak langsung semua username harus di isi dan password harus di isi
Karena itu untuk kefektifan code aja sebenernya
Jadi biar gak lama2 aja prosesnya. Hanya untuk request yg salah
Dan rata2 error kayak "harus di isi" atau sejenisnya harusnya udah di validasi sebelum di kirim ke api di sisi client
Jadi klo ada brute force dan itu tembus setidaknya udah kelempar error duluan
Cmiiw
menurut saya, validasi kosong atau tidak itu kan "murah", karena ga sampai query ke DB, harusnya validasi basic itu divalidasi semua dulu, return all error. jenis data, string, number, min, max, required, in: list, dll.
sementara untuk validasi yang harus query ke DB menurut saya "mahal", jadi setelah validasi basic baru saya validasi yang perlu query ke DB.
opini saya saja ya.
@zeinadi karena dalam dunia payment gateway dan bank tiap ms itu berharga
Makannya validasi di client
Mereka berharap yg masuk ke server mereka ya yang benar2 fix
Error2 kyk gitu cuman perlu ketika si merchant development. Begitu mereka selesai pasti ada uat tuh. Di sana di bahas dan di cek semua
Belum lagi ada cek2 yg costly. Merchant id bener signature bener. Dll
Semoga pak Eko mengadakan sesi translate Sequence Diagram MVC ke kode (Foward Engineering). Dan menjadi konten kreator pertama dalam sejarah Indonesia membahas detail akan hal itu.❤
untuk error code di pakai karena ada kebutuhan multi language saat di tampilkan di sisi client
Saya kerja di industry perbankan yg semua response message nya menggunakan code. Bagi yg gak hapal/ gak tau kan jadi bingung yaa. Wkwk gatau kenapa gak di bikin spesifik ajaa error nya di mana, di banding pake Response Code. Apa karna format message nya menggunakan ISO 8583 yaa ? 😅
legacy pattern aja itu terbiasa menggunakan ISO8583 soalnya. saya juga demikian.
pak kalau melakukan search, terus data tidak ditemukan lebih baik menggunakan response 204 atau 404 ya?
2xx karena bukan not found, tapi empty result
Nah ini sering nih gw nemuin kalau data tidak ditemukan returnya 404.
@@wednesday6301 kalo casenya empty result bener sih tetep 2xx, tp kalo data not foundnya kaya username ya wajar 404 menurut gw
kalau search /api/users?nama=eko, kosong returnnya 2xx, karena berhasil tapi kosong. kalau /api/users/1 => not found baru 404
Maaf pak eko, kadang yg ada errorCode itu dipake client juga, yg di handle ui bisa berbeda-beda, klo general string message saja paling untuk yg di handle klo ui nya hanya menampilkan hasil validasi errornya
tapi memang si, sebenenrya errorCodenya bisa lebih informatif misal string ACCOUNT_LOCKED, dibanding alphanumeric gajelas.
tapi tetep itu butuh baca dokumentasinya jg
@@nidhoggura tapi axios dsb bisa baca status code walaupun API ngga nyediain
Saya juga pake error message sama error code, error codenya dipake buat nampilin pesan error sesuai bahasa yg dipilih user
Kalau case nya itu query data tp data yg dicari user itu tidak ditemukan di database. Apa API yg direturn berstatus 404 dengan msg "Data not found" atau 200 dengan empty array (semisal return expectation nya array)?
pak , kalau pakai kode mungkin messange error nya untuk message yang dapat di modifikasi di frontend contohnya "password tidak boleh kosong" di sisi web , tapi di sisi mobile mau ubah ke "password wajib di isi"
web sama mobile musti nya kiblat API server tetep satu. Jadi error messagenya diharuskan dikit perbedaannya
@_whitecatfullgrown tergantung SRS-nya. ga ada sih kiblat kiblatan
mentap pak, ternyata banyak yang saya lewatkan ketika buat rest API hehe
numpang tanya, itu whiteboard nya pake apa ya pak?
bang ijin ngasih pendapat, klu dari segi perspektif saya kenapa errornya dikasih kode mungkin dari segi security untuk mencegah si hacker dari melihat celah keamanan. Klu dikasih dokumentasi kan yang paham ya antar developer yang telah bekerja sama. Mohon pencerahannya :)
Kang ada video implementasinya di salah satu bahasa pemrograman kah untuk handle error code yg di jelaskan di video ini?
pak, tools yang dipake untuk coret-coret itu namanya apa ya?
mau tanya kang, untuk requestId ini apa diterapin di semua jenis response misal 2xx, 4xx, atau hanya di 5xx aja ya?
Bagusnya di semua status code
buat gambar gambar nya itu pke apa ya?
@@spinofff4686 exalidraw
upp, pengen tau jg
Message:" Sistem telah Berhasil gagal menyimpan data"
Ada juga yang responsenya 201 untuk kode error. Padahal sekelas institusi pemerintah
201 utk status created new error
Bpjs bukan? Wkwkwk
format isi log biasanya apaan?
nama file/method errornya (controller/service/model) , id , inputan user , date time gitu?
pakai library aja, jangan bkin manual, PHP Monolog, Golang Logrus, Node Winston. umumnya gini:
[timestamp] [channel] [description] [detail]
[xxxxxxx] DB.fatal delete user failed {requestId: 'xxx', ....}
kalau sudah pakai container, lognya dilempar ke stdout
sejak pindah dari exprrs nodejs ke Fastapi , beuh ...enak bener bikin api yg terstandar..
fastapi itu python ya mas? cuma masih baru ini yah fastApi, tapi keren sih bisa langsung generate swagger
kang, apa tools yang di pakai untuk menggambar" itu ?
excalidraw kalau gak salah
Kadang gw sebagai FE sering nemuin status 200 tapi response error, ntah itu create error validation kah atau apapun itu, yang sulit di FE, biasanya handling error hanya pake try catch tapi kalau response ereor dari BE nya 200 malah masuk ke try 😅
ini grup dc membership dimana ya mas?
cek deskripsi video
Bang tolong jelasin dong apa perbedaan OOP dan FP
Cara ngebuat requestid gmn?
berarti yang di body cukup data sama message aja ya, status udah built in dari HTTP ?
ikut bantu jawab.. HTTP status code boleh pasang di body atau boleh jg tidak, tergantung standard yg dipake.. kalo pake standard RFC7807 di bodynya ada type, title, status, detail, instance.. mirip contoh response yg dipake sama penanya. cmiiw
temen2 yang kerja dirumah sakit pasti tau lah BPJS response APInya gimana aowkoawkowa 🤣🤣🤣🤣🤣
@@dlandsvolka4046 wkwkwk iya bang, bikin hancur alur pelayanan kesehatan, kalo sistemnya sulit untuk implementasi di sebuah rs, itu main ancam gagal klaim, sedangkan mereka sendiri ngg pake layanan dari mereka sendiri wkwkwk
mungkin buat keamanan karena hanya response error satu persatu
spt ny saya tau bank siapa itu, sangat ingin saya ajak gelut ahahaha
nama software whiteboardnya apa ya?
excalidraw
8:15 xendit tuh pesan eror nya pake kode 😅
@@Buludombaaa pg gitu semua wkwk
tapi pernah dapet status code nya 404 tapi di response ada data nya awkwkwkwk
status response sama status api beda? sounds like a skill issue 🗿
ada Auto-dubbed nya coi akwokwo
bagaimana best practice menghalde log error dan error message, terus bagaimana format error log yang baik, apa saja informasi yang harus dimasukan ?
saya sudah menerpakah yang disarahkan di video tapi kadang masih bingung baca error message dari system yang terlalu umum tidak menjelaskan masalah aslinya.
ilmu MAHAL
Internal Server Error Successfully
semuanya aja direturn 200 😅🤣
Ini mah Jaka Sembung Bawa Golok.... ( GAK Nyambung Programmer....... Blok😂)
tebak bahasa
kira2 bahasa apa?
php
java
html
jawa
APInya pasti pakai CI 3, wkwkw
kalau saya punya standart seperti ini
{
"status": 200,
"message": "Get order list successfully",
"data": [],
"timestamp": "2025-01-02 15:49:22"
}
sama saya juga begitu, dibikin helper file aja