Best Practice untuk API Error | PZN Reaction

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 76

  • @alfuady
    @alfuady 5 หลายเดือนก่อน +16

    {message, data}
    struktur terbaik sejauh ini sejak 2014 gua implement Rest API

  • @alvinxyz7419
    @alvinxyz7419 5 หลายเดือนก่อน +6

    Status Code: 200 OK
    Body:
    {
    status: "error"
    }
    😅

  • @kemaladityaz9833
    @kemaladityaz9833 5 หลายเดือนก่อน +5

    kadang males ngingetin krna takut di anggap nambah2in kerjaan, eh malah saya yg kbagian frontend yg keteteran 😫

    • @Kangfarih
      @Kangfarih 2 หลายเดือนก่อน

      hayok pindah jalur ke BE, wkwkwk

  • @slingingslasher7427
    @slingingslasher7427 5 หลายเดือนก่อน +3

    saya masih belajar
    Untuk API saya biasa pakai struktur template seperti ini
    id : string , ini sama seperti request_id nya pak eko biasanya formatnya username+ Unix time
    took : number
    data : T extends Object | null
    error : K extends Object | null
    message : string
    Untuk yang error yang bagian errornya itu biasanya
    count : number | null , kalau error 429
    form : T extends Record | null , ini buat error kalau validasi form gagal yang T itu sesuai interface form nya.
    untuk error yang sensitif misal errornya di class apa,SQL,line nya dimana di file apa itu gak dikirim ke response error, yang dikirim paling internal server error di message nya wkwk, informasi error seperti itu dikirimnya ke log
    Kalau pesan errornya kan udah ada di bagian message,
    Kalau status itu udah dikirim di back end nya, jadi yang diatas itu cuma isi response ya aja kurang lebih template nya seperti itu.
    Btw yang mau koreksi atau ngasih saran reply saja komentar ini, kita sama-sama belajar.

  • @speksuperhero
    @speksuperhero 5 หลายเดือนก่อน +2

    Saya tau tuh yg dibahas sama bapak yg "error":"errors" 😂😂
    Salah satu api yg sering bgt dipake di Indonesia 🤣🤣🤣

  • @Ariprw
    @Ariprw 5 หลายเดือนก่อน +5

    Bang Eko bahas backup data di production dong baiknya seperti apa 🙌🏻🔥🙌🏻

  • @bisa_fullstack
    @bisa_fullstack 5 หลายเดือนก่อน

    bener banget pak eko kalo response error nya gak informatif seperti itu, seakan akan kita menerawang sendiri dimana errornya bagai seorang spiritual😁

  • @sayedkhaidirali7414
    @sayedkhaidirali7414 5 หลายเดือนก่อน

    saya biasanya kalo error stack itu cuma sampe log level aja, ga sampe response ke front-end, kecuali sedang dalam development, jadi biasanya kita bikin kondisi, untuk non-production env, kita balikin error stack nya kedepan, biar kalo misalnya error nya ga di tangkap di backend, frontend, dan juga QA mungkin detect error tersebut saat proses development

  • @lyrihkaesa
    @lyrihkaesa 5 หลายเดือนก่อน +4

    Agak susah sih kalau responnya acak" di saat harus consume api di type language, bikin banyak model respon yang perlu dibuat.

  • @egipebriyawan1455
    @egipebriyawan1455 5 หลายเดือนก่อน

    terhitung 3 kali divideo ini Pak Eko bilang "saya sih gak pernah ngasih status code" haha. bener2 keukeuh ceuk sunda mah . 😁

  • @yuu.relief
    @yuu.relief 5 หลายเดือนก่อน +6

    HTTP Status 418 : I'm a teapot

  • @sabilhaq
    @sabilhaq หลายเดือนก่อน

    mau bertanya, kalau yang menentukan semua edge case itu apakah developer nya saja? atau dari QA? atau semua?

  • @yasinhabib2029
    @yasinhabib2029 5 หลายเดือนก่อน

    debug mode matiin, selalu gunakan try catch untuk meng-override exception

  • @kamsurlabs
    @kamsurlabs 5 หลายเดือนก่อน

    konsisten, bersih dan informatif adalah koentji

  • @Fuji-gn9nx
    @Fuji-gn9nx 4 หลายเดือนก่อน

    hal yang perlu diimprove saat ini adalah kemampuan debugging, pengendalian error, yang seperti itu, bukan lagi cara membuat. karena barusan aku kesel aplikasi mobile banking error ga jelas tulisannya "mohon install apk nya dari playstore" lah apk aku dari dulu dari playstore njir sebelumnya lancar tau-tau error kayak gitu njir :( seharusnya sebelum release update itu di test sampe bener-bener ga ada bug, ini ada bug direlease, sekelas apk bank lagi yang digunakan orang banyak dan penting karena untuk bayar belanja mereka, tadi ga bisa beli jadinya padahal promo murah

  • @zulfikarsuwardi4015
    @zulfikarsuwardi4015 5 หลายเดือนก่อน

    Pak Eko ada niatan untuk buat materi Laravel Zero ga ?

  • @akhmadali5064
    @akhmadali5064 หลายเดือนก่อน

    kalo di express cukup gini aja (res.status(xxx).json({ data: .. })) atau dituliskan status codenya juga di jsonnya?

  • @rafinurromadhon6905
    @rafinurromadhon6905 5 หลายเดือนก่อน

    sangat bermanfaat mas eko bagi saya yang suka asal kasih message wkwk. terima kasih

  • @bangkuwarteg4719
    @bangkuwarteg4719 5 หลายเดือนก่อน

    Pak ada rencana buat bikin course belajar python?

  • @RohitSormaes-t6j
    @RohitSormaes-t6j 2 หลายเดือนก่อน

    Smith Dorothy Perez Mark Lewis George

  • @ptf42069
    @ptf42069 5 หลายเดือนก่อน

    yang penting itu important

  • @nolep5555
    @nolep5555 หลายเดือนก่อน

    kalau error array seperti itu, di frontend nampilinnya cuma 1 aja atau gimana ya?

  • @minecrawlerarmor
    @minecrawlerarmor 5 หลายเดือนก่อน

    Pak Eko, ingin bertanya apakah bahasa low level seperti c/c++ worth di pelajari untuk loker indonesia

  • @tinkerbell2182
    @tinkerbell2182 5 หลายเดือนก่อน +1

    Kang eko mau pembahasan bikin loging error yg pakai request_id itu ya
    atau ada source video contohnya ga ya . Nuhun kang 🙂

  • @ryu-xd
    @ryu-xd 5 หลายเดือนก่อน

    22:53 bash script di dalam format extension file jpg atau png emang di eksekusi ? perasaan ga bisa

  • @programmerviewid1768
    @programmerviewid1768 5 หลายเดือนก่อน +1

    {status:200,message:"bad request",data:[]} 😂😂

  • @ariflapengo3215
    @ariflapengo3215 5 หลายเดือนก่อน

    mas mau tanya di menit 10:54 dijelaskan biasanya atau lebih baik errornya di detailkan gitu ya
    tapi masalahnya klw kita nemuin suatu error kan langsung di break mas, misal di username kurang panjang nah ini langsung di break dan di return jadi keputus tuh pengecekan lainnya
    apakah baiknya kita kalau nemuin error2 seperti ini baiknya di teruskan dulu pengecekannya agar mendapatkan validitas error message secara keseluruhan?

    • @ProgrammerZamanNow
      @ProgrammerZamanNow  5 หลายเดือนก่อน

      harusnya temuin semua error dulu, di tiap teknologi udah ada validation framework, gak perlu satu2 lagi pake if else

  • @insideofcode
    @insideofcode 5 หลายเดือนก่อน

    10:18 kurang fokus nih pak eko, bilangnya 200 karakter tapi yang muncul angaka 20 😄

    • @ProgrammerZamanNow
      @ProgrammerZamanNow  5 หลายเดือนก่อน

      AI nya belum bisa nebak isi pikiran saya sepertinya

    • @insideofcode
      @insideofcode 5 หลายเดือนก่อน

      @@ProgrammerZamanNow pak ada pembahasan multitenant architecture ga ?

  • @startFromNull
    @startFromNull 5 หลายเดือนก่อน +3

    Paling bete ketika respon error tapi messagenya 200😊😅😅😅😅😅😮😮😢😢😢

    • @reinjin2371
      @reinjin2371 5 หลายเดือนก่อน

      jadi maksutnya sukses diproses tapi juga eror😂

    • @slingingslasher7427
      @slingingslasher7427 5 หลายเดือนก่อน

      @@reinjin2371 di hasil response nya error
      Tapi status yg dibuat dari back end 200 wkwkwk

    • @simpingsyndrome
      @simpingsyndrome 5 หลายเดือนก่อน

      Pass magang nih, APInya kek gini ngesellin, semuanya 200OK 🥴

  • @YusnitaPanut-tg6ge
    @YusnitaPanut-tg6ge 5 หลายเดือนก่อน

    Kang Eko, mau tanya
    Kalau ada kolom di db itu unique, tapi pakai soft delete juga, baiknya bagaimana ngasih tau ke client yang consume API kita?
    Kadang waktu cek di FE ga ada row itu, tapi waktu create gagal karena unique, waktu di cek di db ternyata ada tapi sudah di soft delete.
    Best practice nya bagaimana itu Kang

    • @ProgrammerZamanNow
      @ProgrammerZamanNow  5 หลายเดือนก่อน +2

      Waktu soft delete, jadiin null kolom unik nya

    • @gerinsz
      @gerinsz หลายเดือนก่อน

      di postgres bisa pakai
      CREATE UNIQUE INDEX index_unique_users_email ON "users" USING btree(email) WHERE deleted_at IS NULL;

  • @youtube7959
    @youtube7959 5 หลายเดือนก่อน

    biasa bikin API pke apa nih ?

  • @AktarFardose
    @AktarFardose 2 หลายเดือนก่อน

    Gonzalez Donna Gonzalez Jeffrey Martin Larry

  • @didirumapea6767
    @didirumapea6767 4 หลายเดือนก่อน

    pake joi/zod bagus ga pak eko ?

    • @ProgrammerZamanNow
      @ProgrammerZamanNow  4 หลายเดือนก่อน

      bagus, di kelas saya pake itu

    • @didirumapea6767
      @didirumapea6767 4 หลายเดือนก่อน

      @@ProgrammerZamanNow siap pakk.

  • @VinaPrilli
    @VinaPrilli 4 หลายเดือนก่อน

    Pak review lok bit 32 dong

  • @wahyuafendi9366
    @wahyuafendi9366 2 หลายเดือนก่อน

    Ini ni yang bikin sering berantem fe sama be wkwwkkw

  • @emitvi2347
    @emitvi2347 5 หลายเดือนก่อน

    Halo Bang Eko, izin stich ya
    Saya rasa yg dimaksud di poin "Document common errors" (13:20) tuh agar yg bikin API menyertakan detil struktur pesan error, contoh dari pesan error-nya, dan saran buat mengatasi error-nya
    Misal dengan contoh dari Bang Eko di 15:41, maka di dokumentasi API baiknya dijelasin apa maksudnya UNIQUE, TOO_LONG, dan MUST_BE_LETTERS. Terus bisa juga dikasi tau apa yang bisa menyebabkan API me-return kode2 tersebut

  • @refanfernando6149
    @refanfernando6149 5 หลายเดือนก่อน

    tiap error dikirim "something bad happened" biar errornya bikin penasaran banyak orang 🤣🤣

    • @ramdoni3935
      @ramdoni3935 5 หลายเดือนก่อน

      diri sendiri bilek : "sorry ya aku ini sebenernya programmer yang susah di tebak....

  • @mhwyns
    @mhwyns 5 หลายเดือนก่อน

    klo status code disaya itu biasanya berupa "code" tertentu untuk translate message error spesifik kebutuhan bisnis... misal ERCA001 dkk gt lah bang

    • @ProgrammerZamanNow
      @ProgrammerZamanNow  5 หลายเดือนก่อน +3

      cocok untuk mesin, gak cocok untuk manusia, orang bingung dengan error kode seperti ini

    • @samuelhandoko5320
      @samuelhandoko5320 5 หลายเดือนก่อน

      @@ProgrammerZamanNow keknya maksudnya gt deh.. nanti dari "kode" error itu di translate di fenya jadi bahasa manusia, jadi dari sisi user tahu errornya apa (even banyak kasus user tetep tanya errornya kenapa 😁), kita sebagai programmer juga bisa pinpoin buat checkingnya lebih cepet (kasus di saay programnya memang gede dan macem2,, klo di saya biar sat set carinya)

    • @MuhamadIlham
      @MuhamadIlham 5 หลายเดือนก่อน

      @@samuelhandoko5320yap gua juga nambahin itu biar ngetracenya mudah

    • @grunt515
      @grunt515 3 หลายเดือนก่อน

      ERCA001 : Error Response Code Application no. 001
      #I'mRobot

  • @juancesarAndrianto
    @juancesarAndrianto 5 หลายเดือนก่อน

    kalau ak tak bikin middleware global jadi response erorr dan response suksesnya itu sama semua

    • @Fuji-gn9nx
      @Fuji-gn9nx 4 หลายเดือนก่อน

      wa ini salah kayaknya bang, kalau gitu kan nanti erro database sama error akun sama pesan errornya, alhasil bingung

    • @juancesarAndrianto
      @juancesarAndrianto 4 หลายเดือนก่อน

      @@Fuji-gn9nx kalau error db misal, code 500 langsung lempar aja errror nya yang penting struktur datanya sama baik error atau yang sukses.

    • @Fuji-gn9nx
      @Fuji-gn9nx 4 หลายเดือนก่อน +1

      @@juancesarAndrianto itu buat user? yang buat developer gimana? kamu buat log ga? isi lognya kayak gimana? struktur datanya jelas sama kan sama-sama pakai database yang sama, ga dibedakan databasenya. bahkan kalau itu pesan error untuk user itu masih ga informatif kalau semua pesan error sama karena disetting lewat middleware, misal pesan error di middleware mu "error internal server" dengan kode 500, si user pas login salah memasukkan password dapat tulisan pesan error "error internal server", si usernya mikir gini tuh "waduh servernya error" alhasil dia akan nunggu servernya membaik bukan mengklik lupa password padahal errornya berkaitan dengan password, tetapi karena pesan errornya "error internal server" si user jadi ga ada pikiran buat klik lupa password, tapi malah nunggu server membaik padahal servernya udah baik, alhasil user ga pernah berhasil login karena dia tidak tau kalau yang error tuh passwordnya karena pesan errornya "error internal server"

  • @JomilaHosan
    @JomilaHosan 2 หลายเดือนก่อน

    Lee Karen Clark Melissa Thompson Barbara

  • @laluisariat-tamimi1511
    @laluisariat-tamimi1511 2 หลายเดือนก่อน

    Status, messages, resources

  • @belajarcoding6657
    @belajarcoding6657 5 หลายเดือนก่อน

    Keren

  • @nurkholidf
    @nurkholidf 5 หลายเดือนก่อน

    Pak eko masih sodaraan sama leon kennedy ?

  • @jeffryansyahputra3765
    @jeffryansyahputra3765 5 หลายเดือนก่อน

    izin nanya bang,
    @21:20
    kalo untuk edit data biasanya saya meletakkan id yang akan diedit pada hidden input (HTML+PHP), apakah cara ini tidak aman? bagaimana cara memvalidasi nya.. atau mengamankan nya?

    • @slingingslasher7427
      @slingingslasher7427 5 หลายเดือนก่อน

      Ngirim datanya lewat fetch bang

    • @Fuji-gn9nx
      @Fuji-gn9nx 4 หลายเดือนก่อน

      aman harusnya, metod request post, karena modal id aja ga bakal bisa ngehack kalau ga ter autentifikasi, makanya pastiin api nya hanya bisa diakses yang sudah terautentifikasi

  • @muasx1985
    @muasx1985 5 หลายเดือนก่อน

    nonton ini jadi ingat dulu pernah integrasi dengan "ekspedisi yang namanya sudah gede". detail error validationnya gak informatif banget hanya sekedar mengenai "field tidak sesuai dengan validasi". sudah begitu di dokumentasinya pun kurang jelas per field nya mengenai apa dan rules gimana. jadinya tiap ada error validasi mesti up ke group IT nya mengenai error tersebut.

    • @muasx1985
      @muasx1985 5 หลายเดือนก่อน

      dan semoga sekarang sudah gak seperti tahun kemaren lagi

  • @PerkinHardy-z3i
    @PerkinHardy-z3i หลายเดือนก่อน

    Taylor John Rodriguez Charles Wilson James

  • @jackwilliams4398
    @jackwilliams4398 5 หลายเดือนก่อน

    kapankah kita butuh grpc?

    • @slingingslasher7427
      @slingingslasher7427 5 หลายเดือนก่อน

      Kalau make golang

    • @Fuji-gn9nx
      @Fuji-gn9nx 4 หลายเดือนก่อน

      ​@@slingingslasher7427make semua bahasa bisa ga hanya golang