Langsung ke konten utama

Java Rest API Project

Berawal dari kegelisahanku yang meragukan skill codingku sendiri, aku mulai menyadari satu hal. Selama ini ternyata masih begitu banyak hal yang belum aku eksplor di dunia per-BE-an. Aku merasa mengalami kesulitan juga untuk melakukan tes wawancara dengan perusahaan terkait dengan pengalamanku sendiri. Karena ada beberapa fitur di BE (seperti auth, websocket, JWT, dll.) yang memang aku belum pernah melakukan implementasi sendiri selama di dunia kerja. Entah itu karena selama ini aku memegang proyek turunan dari senior (legacy) yang fitur-fiturnya udah lengkap, atau karena akunya sendiri yang terlalu mengentengkannya seperti, "Ah, pasti suatu saat kalau udah waktunya bakal tahu sendiri fitur itu". Maksudnya, cepat atau lambat aku yakin pasti bakal berkecimpung langsung di fitur tersebut di proyek yang aku pegang di kantor sekarang, dan aku bakal belajar fitur tersebut sambil "jalan".

Tapi faktanya, momen-momen tersebut tidak pernah ada, sehingga aku mulai berpikir bagaimana caraku punya pengalaman tersebut, tapi di project existing aku gak pernah pegang langsung karena memang gak pernah ada masalah di sana. Dan opsi terakhirnya, mau gak mau ya harus bikin sendiri. Akhirnya aku bikin REST API di Java Spring yang secara perlahan aku kembangkan dengan fitur-fitur yang sering dipakai dalam dunia industri. 

Jadi, ini adalah hasilnya. Tidak lupa, aku juga menerapkan best practice, sehingga aku juga belajar banyak tentang bagaimana menerapkan pattern code yang rapi dan high maintainability.

Fitur-fitur yang sudah aku terapkan di proyek ini adalah:

  • JWT
  • Google OAuth2/SSO
  • MFA/TFA/2FA
  • File Upload
  • Multiple login sessions
  • ACL
  • Docker Compose
  • Swagger API Documentation
  • Brute force login and sign-up protection
  • Email service
  • Audit Trail
  • Request Tracing
  • API Caching
  • Rate Limiting
  • Message Broker (RabbitMQ)
  • Async (simple async function, RabbitMQ implementation, max worker, and max queue config)
  • Web Socket
  • Virtual Thread
  • CORS Configuration
  • XSS (Cross-Site Scripting) Protection
  • Clickjacking Protection
  • MIME-Sniffing Protection
  • Referrer Policy
Untuk detil lengkapnya, bisa di cek di sini: https://github.com/donnyk22/java-rest-api

LinkedIn Post: https://www.linkedin.com/posts/donnyk22_di-waktu-senggang-saya-menyempatkan-diri-activity-7435718529582247937-ZZ7y

Komentar