Huy's Blog Theo dõi blog này

Dùng Vim làm REST API client

Published: 1/19/2017 3:07:29 PM

Thường thì khi cần test API, chúng ta sẽ dùng các HTTP client như là Postman, tuy nhiên cái này có một nhược điểm đó là nó... xài GUI.

Và một Vim user chân chính sẽ rất là không thoải mái nếu cứ phải nhảy qua nhảy lại giữa màn hình terminal và một ứng dụng GUI củ chuối nào đó.

Một giải pháp để bạn vẫn được yên phận với màn hình terminal đen ngòm đó là dùng curl.

Tuy nhiên đời chỉ đẹp nếu ta xài curl với những request đơn giản, vài ba params nho nhỏ. Trong trường hợp một request có hàng chục parameters, hoặc truyền vào vài ba cái header mỗi cái dài hơn trăm kí tự thì chắc không ai đủ kiên nhẫn để xài curl nữa.

Trước thực trạng nhức nhối này thì mình tính viết một plugin cho Vim để xài, ý tưởng là viết sẵn cấu trúc của một request vào buffer của Vim, rồi bấm nút 1 phát cho nó tự gọi curl thay mình.

Rất may cho sếp của mình, vì mình đã tìm được một plugin người ta viết sẵn trên mạng, nên mình ko cần ngồi làm việc riêng trong giờ làm việc nữa.

Mà còn điều này nữa, thực ra nãy giờ bạn không cần phải đọc những gì mình viết trên kia đâu, vì đây mới bắt đầu phần chính nè :v

Plugin: Vim Rest Console

vim-rest-console là một plugin giúp gửi/nhận request tới RESTAPI server, rất tiện dụng để test ngay trong Vim.

Plugin này có thể xài thoải mái với Vim và Neovim, miễn là máy tính cần có curl.

Cài đặt

Cài với các plugin manager như VimPlug hay Vundle:

Plug 'diepm/vim-rest-console'

Hoặc nếu bạn xài pathogen thì cài theo cách sau:

cd ~/.vim/bundle
git clone https://github.com/diepm/vim-rest-console.git

Sử dụng

Bạn có thể mở vim ra và gõ ngay hoặc tạo một file có đuôi .rest để dùng hoặc tiện lưu lại về sau.

Nếu mở buffer trực tiếp thì có thể dùng lệnh sau để có syntax highlighting:

:set ft=rest

Sau đó gõ cấu trúc request theo dạng:

http(s)://<host>:<port>
<danh sách header nếu có>
<METHOD> <endpoint>
<request body>

Ví dụ:

https://facebook.com/api/v1
Content-Type: application/json
Pragma: no-cache
POST /delete_user/
{
  "username": "markzuck"
}

Nếu bạn muốn gửi một POST request đến https://facebook.com/api/v1/delete_user với request body là username: markzuck.

Sau khi gõ xong nội dung request, nhấm Ctrl + J để bắt đầu gửi request đi.

Vim sẽ tạo ra một split mới để hiện kết quả request. Rất là tiện lợi.

Gõ xong nhấn Ctrl + Enter để gửi.