Teten Nugraha
BackendHero

Follow

BackendHero

Follow
Membuat REST Api sederhana dengan Spring Boot Part. III — User Controller

Membuat REST Api sederhana dengan Spring Boot Part. III — User Controller

Teten Nugraha's photo
Teten Nugraha
·Jan 10, 2020·

2 min read

Daftar Isi

Prerequisite

  • Kita akan mencoba mengetest aplikasi menggunakan REST API Client yang gratis yaitu Postman, kalian bisa download nya disini https://www.getpostman.com/downloads/ dan sesuaikan dengan sistem operasi laptop kalian.

Photo by [Diego Jimenez](https://cdn.hashnode.com/res/hashnode/image/upload/v1629972802453/cLZF5x4Wb.html) on [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral)Photo by Diego Jimenez on Unsplash

Dalam artikel terakhir ini, kita akan selsaikan projek membuat CRUD Rest API dengan Spring Boot. Langsung saja, buat sebuah class UserController dengan endpoint “api/users”

@RestController
@RequestMapping("/api/users")
public class UserController {

     @Autowired
     private final BookServiceImpl userService;

}

@RestController = Adalah Annotasi yang disediakan Spring Boot untuk membuat Response berupa REST API

@RequestMapping = Adalah endpoint yang nantinya akan kita hit menggunakan Postman

@Autowired = Pasti kalian sudah tau lah yaa, ini buat nge inject.

getAllUsers()

method ini akan mengeluarkan semua data users

@GetMapping
public List<User> getAllUsers() {
    return userService.findAllUsers();
}

getUserById()

method ini akan mengeluarkan satu data user berdasarkan Id

@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
    return userService.findUserById(id)
            .map(ResponseEntity::*ok*)
            .orElseGet(() -> ResponseEntity.*notFound*().build());
}

mempunyai satu parameter id dengan annotasi @PathVarible yang nanti nya akan di pass ke userService.

createUser()

sesuai dengan nama nya, method ini kita gunakan untuk menyimpan data user Baru

@PostMapping
@ResponseStatus(HttpStatus.*CREATED*)
public User createUser(@RequestBody @Validated User user) {
    return userService.createUser(user);
}

menggunakan method POST karena kita akan memberi data ke server.

updateUser()

updateUser melakukan proses update user yang sudah disimpan di database menggunakan method PUT

@PutMapping("/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user) {
    return userService.findUserById(id)
            .map(userObj -> {
                userObj.setId(id);
                return ResponseEntity.*ok*(userService.updateUser(userObj));
            })
            .orElseGet(() -> ResponseEntity.*notFound*().build());
}

dan yang terakhir adalah delete

@DeleteMapping("/{id}")
public ResponseEntity<User> deleteUser(@PathVariable Long id) {
    return userService.findUserById(id)
            .map(user -> {
                userService.deleteUserById(id);
                return ResponseEntity.*ok*(user);
            })
            .orElseGet(() -> ResponseEntity.*notFound*().build());
}

untuk source full nya sebagai berikut

Untuk code lengkap nya, teman-teman bisa clone dari repo saya di https://github.com/teten777/spring-boot-rest-api

Kesimpulan

Membuat REST API dengan Spring boot sangatlah mudah karena semua nya sudah disediakan tinggal kita menggunakannya. Untuk itu tetaplah semangat untuk belajar programming dan bila ada yang mau di tanyakan silahkan hubungi saya di email

dan Jika kalian ingin melakukan pengujian Unit Test nya, ini saya sudah membuat artikel nya Integrate JUnit and Mockito, Unit Testing for Service Layer On this article, we will talk about how to implement Unit Test and we will integrate unit test tool between JUnit and…medium.com

Did you find this article valuable?

Support Teten Nugraha by becoming a sponsor. Any amount is appreciated!

Learn more about Hashnode Sponsors
 
Share this