Rest API Java Spring Boot

Permisi ada yg bisa bantu buat coding pada controller untuk request post multiple data di postman? karena saya mendapatkan error terus menerus, mohon bantuannya terimakasihKeterangan error

package com.test.rest.api.controllers;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.test.rest.api.dtos.AnggotaDTO;
import com.test.rest.api.models.Anggota;
import com.test.rest.api.repositories.AnggotaRepository;

@RestController
@RequestMapping("/api")

public class AnggotaController {

 @Autowired
 private AnggotaRepository anggotaRepository;

 ModelMapper modelMapper = new ModelMapper();


 private Anggota convertAnggotaToEntity (AnggotaDTO anggotaDto) {
  return modelMapper.map(anggotaDto, Anggota.class);
 }

 private AnggotaDTO convertAnggotaToDTO (Anggota anggota) {
  return modelMapper.map(anggota, AnggotaDTO.class);
 }

 // API CREATE Anggota
 @PostMapping("/anggota/create")
 public Map<String, Object> createAnggota(@RequestBody AnggotaDTO anggotaDTO) {
  Map<String, Object> mapResult = new HashMap<>();

  Anggota anggota = convertAnggotaToEntity(anggotaDTO);
  anggota.setAnggotaNama(anggotaDTO.getAnggotaNama());
  anggota.setAnggotaUsia(anggotaDTO.getAnggotaUsia());

  mapResult.put("message", "Craete Success");
  mapResult.put("data", anggotaRepository.save(anggota));

  return mapResult;
 }

// API READ Anggota
 @GetMapping("/anggota/get/findall")
 public Map<String, Object> getAllAnggota () {
  Map<String, Object> mapResult = new HashMap<>();
  List<AnggotaDTO> listAnggotaDto = new ArrayList<>();

  for (Anggota anggota : anggotaRepository.findAll()) {
   AnggotaDTO anggotaDto = convertAnggotaToDTO(anggota);
   listAnggotaDto.add(anggotaDto);
  }

  String message;
  if (listAnggotaDto.isEmpty()) {
   message = "Data is empty";
  }
  else {
   message = "Show all data";
  }

  mapResult.put("message" , message);
  mapResult.put("data", listAnggotaDto);
  mapResult.put("total", listAnggotaDto.size());

  return mapResult;
 }

// API UPDATE Anggota
 @PutMapping("/anggota/update")
 public Map<String, Object> updateAnggota (@RequestParam(value="anggotaId") long anggotaId, @RequestBody AnggotaDTO anggotaDto) {
  Map<String, Object> mapResult = new HashMap<>();

  Anggota anggota = anggotaRepository.findById(anggotaId).orElse(null);

  anggota.setAnggotaNama(anggotaDto.getAnggotaNama());
  anggota.setAnggotaUsia(anggotaDto.getAnggotaUsia());

  mapResult.put("message", "Update success");
  mapResult.put("data", anggotaRepository.save(anggota));

  return mapResult;

 }

// API Delete Employee
 @DeleteMapping("/anggota/delete/{anggotaId}")
 public Map<String, Object> deleteAnggota (@PathVariable(value="anggotaId") long anggotaId) {
  Map<String, Object> mapResult = new HashMap<>();

  Anggota anggota = anggotaRepository.findById(anggotaId).orElse(null);
  anggotaRepository.delete(anggota);

  mapResult.put("message", "Delete Success");

 return mapResult;
 }
}

avatar Maze
@Maze

2 Kontribusi 1 Poin

Diperbarui 2 tahun yang lalu

1 Jawaban:

<div>Dari error-nya, sepertinya json converter bawaan dari spring tidak bisa men-deserialize object Arraylist-of-AnggotaDTO ke JSON-String.<br>Coba convert array tersebut ke string, baru dimasukkan ke mapResult (HashMap).<br>bisa pakai library seperti <a href="https://github.com/google/gson">GSON</a>&nbsp;<br>e.g. mapResult.put("data", new Gson().toJson(listAnggotaDto));&nbsp;<br>Error 400 Bad Request itu di Java (Spring Boot)-nya dan GSON itu library java,<br>Postman adalah client REST dan tidak ada hubungannya dengan error tersebut.<br><br></div>

avatar soeleman
@soeleman

120 Kontribusi 147 Poin

Dipost 2 tahun yang lalu

Tanggapan

Di postman nya gada library gson

Bagian mana yaa yang di convert array ke string

Login untuk ikut Jawaban