Bài 03: Xây dựng RESTful Web Service với Spring

Chi tiết về RESTful các bạn có thể tìm trên mạng

Requirements

Thời lượng: 15 phút
Editor hoặc IDE: Sublime hoặc tuỳ thích
JDK: 6 hoặc cao hơn
Gradle: 4+

Xây dựng

Truy cập https://start.spring.io tạo project với thông số

  • Generate a Gradle Project with Java and Spring Boot 2.0.1
  • Group com.hocspringcoban
  • Artifact post03_restful
  • Search for dependencies Web

Xây dựng src/main/java/com/hocspringcoban/post03_restful/Greeting.java

package com.hocspringcoban.post03_restful;

public class Greeting {
    private final long id;
    private final String name;

    public Greeting(long id, String name) {
        this.id = id;
        this.name = name;
    }

    public long getId() {
        return this.id;
    }

    public String getName() {
        return this.name;
    }
}

Xây dựng src/main/java/com/hocspringcoban/post03_restful/GreetingController.java

package com.hocspringcoban.post03_restful;

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

@RestController
public class GreetingController {
    private static final String template = "Welcome, %s!";
    private long count = 0;

    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", defaultValue = "Einstein") String name) {
        return new Greeting(++count, String.format(template, name));
    }
}

Ghi chú

  • Annotation @RestquestParam dùng để chỉ thị param được truyền vào hàm greeting với tên param là "name" và giá trị mặc định defaultValue = "Einstein" nếu tham số rỗng
  • Khi return một object kiểu class Greeting, Spring sẽ tự động hiển thị một dữ liệu JSON tương ứng (yêu cầu phải có các hàm get trong class Greeting)

Kiểm thử

Tại thư mục post03_restful, nhập lệnh gradle bootRun để chạy
Truy cập http://localhost:8080/greeting nhận được kết quả
{"id":3,"name":"Welcome, Einstein!"}
Truy cập http://localhost:8080/greeting?name=Hoc%20Spring%20Co%20Ban nhận được kết quả
{"id":6,"name":"Welcome, Hoc Spring Co Ban!"}

Nhận xét

Bài đăng phổ biến từ blog này

Bài 02: Tổng quan về Spring, Spring Boot và sử dụng Spring Initializr

Bài 01: Xây dựng ứng dụng Java bằng Gradle

Bài 04: Kết nối Spring với cơ sở dữ liệu MySQL