Dùng Vim làm REST API client
TIL
500
vim
18
White

Huy Trần viết ngày 19/01/2017

Dùng Vim làm REST API client

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.

huytd - 19/01/2017

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Trần

102 bài viết.
1442 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
146 43
Tại sao phải viết blog kĩ thuật? Có rất nhiều bài viết trên mạng nói về vấn đề tại sao một lập trình viên nên thường xuyên viết các bài blog kĩ thu...
Huy Trần viết hơn 2 năm trước
146 43
White
143 37
(Ảnh) Tiếp tục sêri (Link) lần này, chúng ta sẽ cùng tìm hiểu và mô phỏng lại một chức năng mà mọi người đang bắt đầu sử dụng hằng ngày, đó là chứ...
Huy Trần viết hơn 1 năm trước
143 37
White
97 16
Phần 1: Tự truyện Tui và Toán đã từng là hai kẻ thù không đội trời chung trong suốt hơn mười lăm năm ròng rã. Ngay từ ánh nhìn đầu tiên đã ghét nh...
Huy Trần viết gần 2 năm trước
97 16
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 7 tháng trước
1 1
White
8 0
Lấy fake path của file trong html input Ngữ cảnh: em cần làm một cái nút tải ảnh lên có preview. GIải pháp đầu: Dùng (Link) đọc file ảnh thành ba...
Hoàng Duy viết gần 2 năm trước
8 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
102 bài viết.
1442 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!