Reputation: 1
I have to retuen the message "Data Added" in the api in ResponseBody Create a api while enters student data /newStudent
Request Body:
{
"name":"Shubham",
"rollno":22,
"studentid":1
}
Response:
{
"status":"OK",
"message":"Data Added"
}
@RequestMapping("/studentdata")
@ResponseBody
@ResponseStatus(HttpStatus.OK )
Upvotes: 0
Views: 1240
Reputation: 1
It worked for me like this in Response class:
public class Response {
private String statusCode;
private String statusMsg;
public String getStatusCode() {
return statusCode;
}
public void setStatusCode(String statusCode) {
this.statusCode = statusCode;
}
public String getStatusMsg() {
return statusMsg;
}
public void setStatusMsg(String statusMsg) {
this.statusMsg = statusMsg;
}
}
In controller:
@PostMapping("/newStudent")
public ResponseEntity<Response> saveStudent(@RequestBody Student student) {
Student save = service.save(student);
Response response = new Response();
response.setStatusCode("200");
response.setStatusMsg("Data Added");
return ResponseEntity.status(HttpStatus.CREATED).body(response);
}
Upvotes: 0
Reputation: 1
import org.json.simple.JSONObject;
@ResponseBody
@RequestMapping(value = "/studentdata", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public String message(@RequestBody String transaction) {
String response = "";
JSONObject obj = new JSONObject();
obj.put("status", "OK");
obj.put("message", "Data Added");
response = obj.toJSONString();
return response;
}
Upvotes: 0
Reputation: 106
First of all you should create a Response class which will hold status code and your custom message like the following class :
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Response {
private String statusCode;
private String statusMsg;
}
So in your controller where you post the object use ResponseEntity which can allow you to customize HTTP response methods. For example:
@Autowired
private StudentRepository studentRepository;
@PostMapping("/newStudent")
public ResponseEntity<Response> saveEmployee(@RequestBody Student
student){
studentRepository.save(student);
Response response = new Response();
response.setStatusCode("200");
response.setStatusMsg("Your message");
return ResponseEntity.status(HttpStatus.CREATED).body(response);
}
Upvotes: 1
Reputation: 1063
This is how to return custom object in response.
router.post("/newStudent", async (req, res) => {
const { name, rollNo, studentId } = req.data;
// POST data to DB
const result = await AddStudentDataToDB({ name, rollNo, studentId });
res.status(200).json({
status: 'ok',
message: 'Data Added'
});
});
Upvotes: 0
Reputation: 59986
You can create a custom response class that looks like this:
class CustomResponse {
private String status;
private String message;
// Constructor/Getters/Setters
}
Then in your controller return ResponseEntity
for example:
CustomResponse response = new CustomResponse("OK", "Data Added");
return ResponseEntity.ok(response); // the ok will return HTTP Status 200
Or if you want another HttpStatus, then you can use for example:
return new ResponseEntity<>(response, HttpStatus.CREATED);
^^^^^^^^^^^^^^^^^^
Upvotes: 2