Share
Trang chủ / Tất cả hướng dẫn / Golang / Viết web service cung hoàng đạo đơn giản

Viết web service cung hoàng đạo đơn giản

Trong bài viết trước, chúng ta đã xây dựng một command line application dùng để hiển thị horoscope. Hôm nay chúng ta cũng làm tương tự, thậm chí là cải tiến lại application trước để xây dựng một webservice cung cấp thông tin horoscope daily.

Nhưng chúng ta không muốn phải viết lại code, chúng ta muốn reuse lại một phần code trong cli application. Vậy nên plan như sau. Trước tiên sẽ cần phải tách cli application ra thành hai phần, một module xử lý nội dung horoscope và main module dùng để giao tiếp với người dùng.

Tách module horoscope

Tạo một project mới với file horoscope có nội dung như sau :

Giờ tạo project horoscopecli với file main.go có nội dung như sau :

Vậy là thành công, khá đơn giản, và giờ bạn có thể share package của bạn cho bạn bè sử dụng. Nhưng nhớ dụ họ thật kỹ, vì thường thì cái này chẳng có giá trị gì nhiều.

Tạo Webservice

Cũng giống như bên cli, nhưng khác ở chỗ interface, giờ chúng ta sẽ sử dụng http server để giao tiếp với người dùng, nhưng phần xử lý thì vẫn là package lúc nảy chúng ta vừa tách

Ở đây mình sử dụng mux package để làm server. và cấu thúc route của daily horoscope là

/{sign}/daily

Mình làm vậy vì mình muốn phát triển thêm một vài tính năng khác chứ không phải chỉ có mỗi daily horoscope. Mặc dù mình không phải là thích horoscope, nhưng mình muốn lấy nó làm demo.

Giờ để run nó, bạn chạy:

cd gowebservice
go run main.go -ip=117.0.0.1 -port=8080

Để build thì dùng lệnh:

go build

Giờ bạn có thể thử get, post vào url :

http://localhost:8080/leo/daily

Bạn sẽ thấy thông tin về cung hoàn đạo đó.

Lời kết

Suy cho cùng, thì đây cũng chỉ là một bài tập nhỏ mà chúng ta có thể làm để cải thiện dần dần kiến thức về go mà thôi, thực tế thì nó không có giá trị nhiều. Nhưng khác mình, trong lúc làm ví dụ này, các bạn có thể tìm hiểu kỹ hơn về mux, tại sao dùng mux mà không dùng http mặc định. Đó hẳn là còn nhiều thứ để các bạn tìm hiểu.