Blog java web Hướng dẫn học java web Hướng dẫn java core cơ bản Liên hệ Thanh toán

Hướng dẫn restful web service trong spring boot phần 1

Tìm hiểu @Controller, @RequestBody, @ResponseBody, @RequestMapping, HTTP Method

Khóa học java web jsp servlet jdbc spring mvc spring boot restful web service

Khóa học spring boot cơ bản:

Các phần mềm và thư viện sử dụng:

  • Apache maven 3.6.0

  • Eclipse EE

  • JDK 1.8

  • spring boot 1.5.9.RELEASE

  • Postman

Download các phần mềm tại đây: LINK DOWNLOAD

Để học được bài học này, các bạn phải xem qua bài viết tạo project spring boot: XEM TẠI ĐÂY

Cấu trúc project:

Restful web service là gì:

Web service thì có 2 dạng: 

  • SOAP
  • REST

Dạng mà chúng ta hay xài nhất đó là REST, nó sử dụng kiểu dữ liệu JSON để tương tác. 

Nhìn vào hình trên bạn sẽ rõ, app và web chắc chắn cách binding data hay truy vấn tới server nó sẽ khác nhau, tuy nhiên để đồng bộ dữ liệu, hệ thống TIKI chẳng hạn họ sẽ dùng cơ chế này để đồng bộ. Khi ta thay đổi data trên app hay web thì cả 3 sẽ được đồng bộ dữ liệu như nhau. Như đã nói, cách binding data và truy vấn dữ liệu của app hay web sẽ khác nhau, do đó chúng ta cần 1 kĩ thuật để đồng bô input hay output khi app hay web truyền data về server và ngược lại. Và kĩ thuật dùng ở đây đó chính là web service và cụ thể chúng ta sử dụng REST API với JSON data.

Vậy restful web service được build như thế nào khi chúng ta sử dụng spring boot, bây giờ zô nhé bà con

Đầu tiên, các bạn làm theo các bước như sau:

Bước 1: trong package com.laptrinhjavaweb.api bạn tạo 1 file có tên là NewAPI.java và copy đoạn code phía dưới vào

package com.laptrinhjavaweb.api;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import com.laptrinhjavaweb.dto.NewDTO;

@Controller

public class NewAPI {

       @RequestMapping(value = "/new", method = RequestMethod.POST)

       @ResponseBody

       public NewDTO createNew(@RequestBody NewDTO model) {

        return model;

   }

}

 

@Controller: định nghĩa NewAPI từ java class thành 1 API, hiểu đơn giản là biến 1 java class thông thường thành API trong restful web service

@RequestMapping: nhận request thì client vào

RequestMethod.POST: kiểu HTTP method, POST được dùng trong các trường hơp chúng ta thêm dữ liệu vào trong database

Khi viết API, bắt buộc chúng ta phải định nghĩa HTTP method cho API đó

@RequestBody: nhận dữ liệu json được truyền từ client vào server

@ResponseBody: trả kết quả json từ server về client

Chú ý:

1 số nguyên tắc khi viết API:

Tên api phải là danh từ

http method phải đúng với thao tác

Thêm: POST

Sửa: PUT

Xóa: DELETE

Hiển thị dữ liệu: GET

Bước 2: tạo package com.laptrinhjavaweb.dto

Bước 3: trong package com.laptrinhjavaweb.dto tạo 1 file có tên NewDTO.java và copy đoạn code phía dưới vào file

package com.laptrinhjavaweb.dto;

 

public class NewDTO {

    private String title;

    private String content;

    public String getTitle() {

           return title;

  }

    public void setTitle(String title) {

           this.title = title;

  }

    public String getContent() {

     return content;

  }

    public void setContent(String content) {

           this.content = content;

  }

}

Sau khi hoàn thành các bước trên, chúng ta đi vào phần test api, để kiểm tra xem API đó có work

Phần mềm sử dụng để test api đó là PostMan, bạn nào chưa có thì download TẠI ĐÂY 

Bước 1: Mở postman lên vào làm theo như hình:

Nhập url và chọn http method theo api định nghĩa

Bước 2: tiếp tục nhé anh em

Anh em chú ý là bước 4 chính là đoạn json data mà chúng ta sẽ post lên server

Bước 3: anh em run con spring boot lên và chạy postman, nếu nó ra kết quả như hình bên dưới thì anh em đã thành công rồi nhé

Chú ý: anh em nào mà chưa biết run project spring boot thì xem lại bài này nhé LINK BÀI VIẾT

Run API trong POSTMAN

Kết quả sau khi run:

 

Link download source code cho bài viết: GITHUB

 

Khóa học java web jsp servlet jdbc spring mvc spring boot restful web service

Thông tin liên hệ:

  • Facebook cá nhân: https://www.facebook.com/lamrangho

  • Fanpage: https://www.facebook.com/laptrinhjavaweb

  • Email: truonglam@laptrinhjavaweb.com

  • Skype: +84962733463