Membangun Aplikasi REST API Pertama Dengan Spring Boot (Bagian 2)
Pada bagian 1 tulisan ini, subrutin telah mengulas bagaimana programmer memulai membangun “project kosong” menggunakan Spring Boot. Dalam bagian ke-2, subrutin akan melanjutkan pembahasan mengenai bagaimana membangun aplikasi pertama dengan spesifikasi yang telah dibahas, yaitu untuk membuat satu endpoint API yang dapat diakses dengan method GET
di alamat /welcome/
.Ketika endpoint tersebut diakses, aplikasi akan memunculkan respon keluaran JSON sebagai berikut
{ "message":"Hello World" }
Baca juga:
- DTO (Data Transfer Object)
DTO adalah istilah dalam software engineering yang mendefinisikan sebuah object yang digunakan untuk meng-enkapsulasi data dan mengirimkan dari satu subsistem aplikasi ke yang lain.
Biasanya DTO, digunakan sebuah aplikasi service pada suatu layer untuk mentransfer obejct antara dirinya dan layer antarmuka pengguna (User Interface). Dalam konteks tutorial kali ini, akan dibuat class DTO bernama MessageResponseDTO
yang berfungsi menampung data yang dikirim tersebut.
package com.subrutin.hellospring.dto; public class MessageResponseDTO { private String message; //getter setter diabaikan untuk simplifikasi }
Perhatikan, bahwa class
ini hanya terdiri dari properti message
, hal ini sesuai dengan requirement format response JSON yang ingin ditampilkan.
- Controller
Berikutnya buat sebuah controller yang bertugas untuk menangani request berdasarkan path endpoint request-nya. Dalam tutorial ini misalnya dibuat class controller bernama WelcomeController
package com.subrutin.hellospring.resources; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.subrutin.hellospring.dto.MessageResponseDTO; @RestController public class WelcomeResource { @GetMapping("/welcome") public ResponseEntity<MessageResponseDTO> sayHi(){ MessageResponseDTO response = new MessageResponseDTO(); response.setMessage("Hello World"); return ResponseEntity.ok().body(response); } }
Perhatikan class WelcomeResources
ini diberikan anotasi @RestController
pada baris 9, disini programmer memberitahu kepada framework bahwa class WelcomeResource
merupakan class yang berfungsi sebagai rest controller.
Perhatikan juga pada method sayHi
dimana juga diberikan anotasi @GetMapping
yang menandakan bahwa method tersebut merupakan method yang akan menangani request GET dari endpoint /welcome/
sebagaimana requirement software diawal.
Method ini memberikan return
berupa object ResponseEntity<MessageResponseDTO>
dimana MessageResponseDTO
merupkan body dari response yang nantinya dikirim. Object ResponseEntity merupakan object bawaan Spring Framework yang dapat digunakan programmer sebagai representasi dari object response http, pada method–method yang menangani REST request
- Menjalankan Program
Jalankan program sebagaimana yang pernah dibahas pada bagian 1 tulisan ini, atau dapat menggunakan command Maven pada terminal / command prompt dengan mvn spring-boot:run
. Gunakan aplikasi postman atau curl untuk mengakses webservice pada http://localhost:8080/welcome/
Ini repo githubnya dimana yaa? Struktur DTO di implementasikan di mana tidak dijelaskan dibagian ini.