Bài 71: Xây dựng Web Service dùng API RESTful Service(phần 4)


Trong bài bài 68bài 69bài 70 các bạn đã hiểu được RESTful cũng như cách thức hoạt động của HttpPost, HttpGet, HttpPut và HttpDelete. Tuy nhiên để tương tác được với nó thì cần cấu hình lên Webserver, cụ thể là IIS, trước đây Tui có hướng dẫn các bạn cách tạo lên somee.com, các bạn có thể xem lại bài hướng dẫn này ở đây

Trong bài này Tui sẽ hướng dẫn các bạn từng bước cài đặt lên IIS Server ở máy local của các bạn, việc test trên máy local cũng khá quan trọng vì khi test hoàn chỉnh xong thì ta mới publish ra ngoài.

Dưới đây là chi tiết từng bước cách dựng IIS Server và cách triển khai FoodServer lên IIS này (Tui setup trên Win 10, 64 bit)

Bước 1: Vào Control panel chọn Programs and Features

h71-0Bước 2: Chọn Turn Windows features on or off:

h71-1Bước 3: Tiến hành lựa chọn để cài IIS Web Server theo màn hình dưới đây:

h71-2Sau khi lựa chọn giống như khung khoanh màu đỏ, nhấn OK để tiến hành cài đặt, tùy thuộc vào máy mà chương trình có thể cài từ 5-10 phút.

Bước 4: Sử dụng IIS Web Server:

Sau khi cài xong IIS Web Server, bạn quay lại màn hình Control panel, bạn sẽ thấy Administrative Tools:

h71-3Bạn click vào biểu tượng Administrative Tools, ta có giao diện tiếp theo:

h71-4Bạn chọn “Internet Information Services (IIS) Manager” như hình trên:

h71-5Trong màn hình quản trị bạn thấy có 2 vùng: Application Pools và Default Web site.

Bước 4.1 Cấu hình Application Pools:

Application Pool là gì?
Application Pool có thể chứa một hoặc nhiều ứng dụng và cho phép chúng ta cấu hình cấp độ giữa các ứng dụng web khác nhau. Ví dụ, nếu bạn muốn cô lập tất cả các ứng dụng web chạy trong cùng một máy, bạn có thể làm điều này bằng cách tạo ra Application Pool riêng biệt cho mỗi ứng dụng web và đặt chúng trong Application Pool tương ứng. Bởi vì mỗi Application Pool chạy trong quá trình làm việc riêng của mình, các lỗi trong Application Pool sẽ không ảnh hưởng đến các ứng dụng đang chạy trong Application Pool khác. Triển khai ứng dụng trong Application Pool là lợi thế chính của IIS trong quá trình làm việc ở chế độ cách ly bởi vì bạn có thể tùy chỉnh Application Pool để đạt được cấp độ tách biệt ứng dụng mà bạn cần.
Khi bạn cấu hình Application Pool để sẵn sàng tối ưu, bạn cũng nên xem xét làm thế nào để cấu hình Application Pool bảo mật ứng dụng. Ví dụ, bạn có thể cần phải tạo ra Application Pool riêng cho ứng dụng đòi hỏi mức độ bảo mật cao, trong khi cho phép các ứng dụng đòi hỏi một mức độ thấp hơn của bảo mật để chia sẻ cùng Application Pool.
Bạn bấm chuột phải vào màn hình Application Pools/ chọn Add Application Pool… như hình dưới đây:h71-6Màn hình tạo mới Application Pool hiển thị lên, ta nhập “FoodServer_Pool” rồi bấm OK:
h71-7Sau khi bấm OK, bạn quan sát:
h71-8Ở màn hình trên bạn tiếp tục chọn Advanced Settings.. cho FoodServer_Pool:
h71-9Bạn cần chỉnh ApplicationPoolIdentity qua LocalSystem.
Bước 4.2: Cấu hình WebService lên IIS Server
Bấm chuột phải vào Default Web Site / chọn Add Application
h71-10
Màn hình hiển thị Add Application:
h71-11Mục Alias (1): Đặt tên cho Service, ở đây ta đặt foodserver
Mục Application pool (2): Nhấn nút Select… và chọn đúng FoodServer_Pool
Mục Physical path (3): Trỏ tới đường dẫn chứa source code của project
Sau đó bấm OK để tạo.
Bạn quan sát kết quả:
h71-12http://localhost/foodserver/api/food chính là kết quả sau khi cấu hình xong. Tới đây hệ thống đã chạy 24/24.
Các bạn có thể dùng Postman và HttpRequester để test HttpPost, HttpGet, HttpPut và HttpDelete.
Các bạn chú ý rằng khi từ Mobile kết nối tới Web Service này thì không thể dùng localhost (vì nó lầm tưởng là của chính mobile), đo dó bạn cần đưa localhost về 1 địa chỉ IP để test.
Cách lấy địa chỉ IP của máy local của ta:
– Nhấn tổ hợp phím có biểu tượng Windows + R để mở cửa sổ Run:
h71-13– gõ lệnh cmd, màn hình command line hiển thị lên, tiếp tục gõ lệnh ipconfig
h71-14Ở trên máy local của Tui có địa chỉ IP: 192.168.100.3
Bây giờ Tui thay thế cho localhost:
h71-15Như vậy ta cũng có được kết quả mong muốn.
Các bạn cố gắng cấu hình để được kết quả như trên.
Bài sau Tui sẽ hướng dẫn cách tương tác từ Mobile Android lên RESTful WebService, các bạn chú ý theo dõi.
Chúc các bạn thành công!

16 responses

  1. có bài hướng dẫn kết nối với Android chưa vậy ạ

  2. Thầy ơi em muốn tìm hiểu chức năng chuyển text sang âm thanh. Ví dụ như tin nhắn đến và m sẽ cho nó đọc thì em phải tìm hiểu những gì ạ. Thầy giúp e một số tài liệu được ko ạ. 😁

    1. Ban dung Text-To-Speech

  3. thầy ơi ,thầy hướng dẫn luôn cái retrofit luôn ạ

  4. em làm theo y sì nhưng ko lên localhost/foodserver/api/food như thầy được

    1. Nó thông báo lỗi gì vậy bạn, mình tìm một hồi cũng ra rồi

  5. có các nào thao tác trên vs2010 ko bạn nhi?

  6. thầy cho em hỏi là em host trên IIS, load vào được localhost:8080 (port em để) nhưng khi sử dụng localhost:8080/api/{x} thì không load được dữ liệu từ database, có cách nào để fix k vậy?

    1. cụ thể là lỗi em gặp gì?

      1. Thầy ơi có bài tiếp theo chưa ạ

  7. […] Tui đã hướng dẫn rất kỹ phần cấu hình IIS WEB Server trong bài 71 https://duythanhcse.wordpress.com/2015/11/11/bai-71-xay-dung-web-service-dung-api-restful-servicepha…rồi, nên các bạn tự xem lại, dưới đây tui chụp hình kết […]

  8. Em làm đúng trình tự theo hướng dẫn của thầy nhưng khi chạy bị lỗi này thầy ơi Server Error in Application “DEFAULT WEB SITE”
    HTTP Error 404.0 – Not Found
    The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

  9. Thầy có thể hướng dẫn thêm cách sử dụng web api với winform được không ạ ? Cám ơn thày

  10. mình bị lỗi này

    Cannot open database “dbFood” requested by the login. The login failed. Login failed for user ‘NT AUTHORITY\SYSTEM’.

    sửa thế nào hả mn

    1. Hi em
      Em cấu hình SQL Authencation mode em nhé(có thể hiện giờ em đang để Windows Authencation)
      Thầy Thanh

  11. Thầy ơi,
    Xong rồi có bài hướng dẫn đọc nó qua android không ạ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s