Hướng dẫn sử dụng dịch vụ web RESTful với ví dụ về API REST

Mục lục:

Anonim

Dịch vụ Web Restful là gì?

Restful Web Services là một dịch vụ nhẹ, có thể bảo trì và có thể mở rộng được xây dựng trên kiến ​​trúc REST. Dịch vụ Web khôi phục, hiển thị API khỏi ứng dụng của bạn theo cách an toàn, thống nhất, không trạng thái cho ứng dụng khách đang gọi. Máy khách đang gọi có thể thực hiện các hoạt động được xác định trước bằng cách sử dụng dịch vụ Restful. Giao thức cơ bản cho REST là HTTP. REST là viết tắt của REpresentational State Transfer.

Trong hướng dẫn REST API này, bạn sẽ học-

  • RESTful các yếu tố chính
  • Phương pháp khôi phục
  • Tại sao lại yên tĩnh
  • Kiến trúc yên tĩnh
  • Các nguyên tắc và ràng buộc RestFul
  • Tạo dịch vụ web Restful đầu tiên của bạn trong ASP.NET
  • Chạy dịch vụ web Restful đầu tiên của bạn
  • Thử nghiệm dịch vụ web Restful đầu tiên của bạn

RESTful các yếu tố chính

Các dịch vụ Web REST đã thực sự trải qua một chặng đường dài kể từ khi thành lập. Năm 2002, hiệp hội Web đã đưa ra định nghĩa về các dịch vụ web WSDL và SOAP. Điều này hình thành tiêu chuẩn về cách các dịch vụ web được triển khai.

Năm 2004, tập đoàn web cũng đưa ra định nghĩa về một tiêu chuẩn bổ sung được gọi là RESTful. Trong vài năm qua, tiêu chuẩn này đã trở nên khá phổ biến. Và đang được sử dụng bởi nhiều trang web phổ biến trên thế giới bao gồm Facebook và Twitter.

REST là một cách để truy cập các tài nguyên nằm trong một môi trường cụ thể. Ví dụ: bạn có thể có một máy chủ có thể lưu trữ các tài liệu hoặc hình ảnh hoặc video quan trọng. Tất cả những điều này là một ví dụ về tài nguyên. Nếu một máy khách, chẳng hạn như một trình duyệt web cần bất kỳ tài nguyên nào trong số này, nó phải gửi yêu cầu đến máy chủ để truy cập các tài nguyên này. Bây giờ các dịch vụ REST xác định một cách về cách các tài nguyên này có thể được truy cập.

Các yếu tố chính của việc triển khai RESTful như sau:

  1. Tài nguyên - Yếu tố quan trọng đầu tiên là chính tài nguyên đó. Giả sử rằng một ứng dụng web trên máy chủ có hồ sơ của một số nhân viên. Giả sử URL của ứng dụng web là http://demo.guru99.com . Bây giờ để truy cập tài nguyên hồ sơ nhân viên thông qua các dịch vụ REST, người ta có thể ra lệnh http://demo.guru99.com/employee/1 - Lệnh này yêu cầu máy chủ web cung cấp thông tin chi tiết về nhân viên có số nhân viên là 1.

  2. Động từ yêu cầu - Những động từ này mô tả những gì bạn muốn làm với tài nguyên. Một trình duyệt đưa ra một động từ GET để chỉ thị cho điểm cuối mà nó muốn lấy dữ liệu. Tuy nhiên, có nhiều động từ khác có sẵn bao gồm những thứ như POST, PUT và DELETE. Vì vậy, trong trường hợp của ví dụ http://demo.guru99.com/employee/1 , trình duyệt web thực sự đang phát hành GET Động từ vì nó muốn lấy thông tin chi tiết của hồ sơ nhân viên.

  3. Tiêu đề Yêu cầu - Đây là các hướng dẫn bổ sung được gửi cùng với yêu cầu. Những điều này có thể xác định loại phản hồi được yêu cầu hoặc chi tiết ủy quyền.

  4. Nội dung yêu cầu - Dữ liệu được gửi cùng với yêu cầu. Dữ liệu thường được gửi trong yêu cầu khi một yêu cầu ĐĂNG được thực hiện đến các dịch vụ web REST. Trong cuộc gọi POST, máy khách thực sự nói với các dịch vụ web REST rằng nó muốn thêm tài nguyên vào máy chủ. Do đó, phần thân yêu cầu sẽ có các chi tiết của tài nguyên được yêu cầu thêm vào máy chủ.

  5. Phần phản hồi - Đây là phần chính của câu trả lời. Vì vậy, trong ví dụ về API RESTful của chúng tôi, nếu chúng tôi truy vấn máy chủ web qua yêu cầu http://demo.guru99.com/employee/1 , máy chủ web có thể trả về tài liệu XML với tất cả các chi tiết của nhân viên trong Phản hồi Thân hình.

  6. Mã trạng thái phản hồi - Các mã này là mã chung được trả về cùng với phản hồi từ máy chủ web. Một ví dụ là mã 200 thường được trả về nếu không có lỗi khi trả lại phản hồi cho máy khách.

Phương pháp khôi phục

Sơ đồ dưới đây hầu hết hiển thị tất cả các động từ (POST, GET, PUT và DELETE) và một ví dụ REST API về ý nghĩa của chúng.

Giả sử rằng chúng ta có một dịch vụ web RESTful được xác định tại vị trí. http://demo.guru99.com/employee . Khi khách hàng đưa ra bất kỳ yêu cầu nào đối với dịch vụ web này, nó có thể chỉ định bất kỳ động từ HTTP thông thường nào là GET, POST, DELETE và PUT. Dưới đây là những gì sẽ xảy ra Nếu các động từ tương ứng được gửi bởi khách hàng.

  1. ĐĂNG - Điều này sẽ được sử dụng để tạo nhân viên mới bằng cách sử dụng dịch vụ web RESTful
  2. NHẬN - Điều này sẽ được sử dụng để lấy danh sách tất cả nhân viên sử dụng dịch vụ web RESTful
  3. PUT - Điều này sẽ được sử dụng để cập nhật tất cả nhân viên sử dụng dịch vụ web RESTful
  4. XÓA - Điều này sẽ được sử dụng để xóa tất cả nhân viên sử dụng các dịch vụ RESTful

Chúng ta hãy xem xét từ góc độ của một bản ghi duy nhất. Giả sử có một hồ sơ nhân viên với số nhân viên là 1.

Các hành động sau đây sẽ có ý nghĩa tương ứng.

  1. ĐĂNG - Điều này sẽ không áp dụng được vì chúng tôi đang tìm nạp dữ liệu của nhân viên 1 đã được tạo.
  2. NHẬN - Điều này sẽ được sử dụng để nhận thông tin chi tiết của nhân viên với Nhân viên số 1 bằng cách sử dụng dịch vụ web RESTful
  3. PUT - Điều này sẽ được sử dụng để cập nhật thông tin chi tiết của nhân viên với Nhân viên số 1 bằng cách sử dụng dịch vụ web RESTful
  4. XÓA - Điều này được sử dụng để xóa thông tin chi tiết của nhân viên với Nhân viên số 1

Tại sao lại yên tĩnh

Restful chủ yếu trở nên phổ biến do những lý do sau:

  1. Các ngôn ngữ và môi trường không đồng nhất - Đây là một trong những lý do cơ bản giống như chúng ta đã thấy đối với SOAP.
  • Nó cho phép các ứng dụng web được xây dựng trên các ngôn ngữ lập trình khác nhau giao tiếp với nhau
  • Với sự trợ giúp của các dịch vụ Restful, các ứng dụng web này có thể cư trú trên các môi trường khác nhau, một số có thể trên Windows và những ứng dụng khác có thể trên Linux.

Nhưng cuối cùng, bất kể môi trường là gì, kết quả cuối cùng phải luôn giống nhau để họ có thể nói chuyện với nhau. Các dịch vụ web mạnh mẽ cung cấp tính linh hoạt này cho các ứng dụng được xây dựng trên các ngôn ngữ lập trình và nền tảng khác nhau để nói chuyện với nhau.

Hình ảnh dưới đây đưa ra một ví dụ về một ứng dụng web có yêu cầu giao tiếp với các ứng dụng khác như Facebook, Twitter và Google.

Giờ đây, nếu một ứng dụng khách phải làm việc với các trang như Facebook, Twitter, v.v. thì có lẽ họ sẽ phải biết ngôn ngữ mà Facebook, Google và Twitter được xây dựng và chúng được xây dựng trên nền tảng nào.

Dựa trên điều này, chúng tôi có thể viết mã giao diện cho ứng dụng web của mình, nhưng điều này có thể chứng minh là một cơn ác mộng.

Facebook, Twitter và Google thể hiện chức năng của chúng dưới dạng các dịch vụ web khôi phục. Điều này cho phép bất kỳ ứng dụng khách nào gọi các dịch vụ web này qua REST.

  1. Sự kiện của Thiết bị - Ngày nay, mọi thứ đều cần hoạt động trên các thiết bị Di động, cho dù đó là thiết bị di động, máy tính xách tay hay thậm chí là hệ thống ô tô.

    Bạn có thể tưởng tượng mức độ nỗ lực để thử và viết mã các ứng dụng trên các thiết bị này để nói chuyện với các ứng dụng web bình thường không? Một lần nữa Restful API có thể làm cho công việc này trở nên đơn giản hơn vì như đã đề cập ở điểm số 1, bạn thực sự không cần biết lớp bên dưới của thiết bị là gì.

  2. Cuối cùng là sự kiện của Đám mây - Mọi thứ đều chuyển lên đám mây. Các ứng dụng đang dần chuyển sang các hệ thống dựa trên đám mây như Azure hoặc Amazon. Azure và Amazon cung cấp rất nhiều API dựa trên kiến ​​trúc Restful. Do đó, các ứng dụng bây giờ cần được phát triển theo cách tương thích với Đám mây. Vì vậy, vì tất cả các kiến ​​trúc dựa trên Đám mây đều hoạt động trên nguyên tắc REST, nên việc các dịch vụ web được lập trình trên kiến ​​trúc dựa trên dịch vụ REST sẽ có ý nghĩa hơn để sử dụng tốt nhất các dịch vụ dựa trên Đám mây.

Kiến trúc yên tĩnh

Một ứng dụng hoặc kiến ​​trúc được coi là RESTful hoặc kiểu REST có các đặc điểm sau

  1. Trạng thái và chức năng được chia thành các tài nguyên phân tán - Điều này có nghĩa là mọi tài nguyên phải có thể truy cập được thông qua các lệnh HTTP thông thường của GET, POST, PUT hoặc DELETE. Vì vậy, nếu ai đó muốn lấy tệp từ máy chủ, họ sẽ có thể đưa ra yêu cầu GET và lấy tệp. Nếu họ muốn đặt một tệp trên máy chủ, họ sẽ có thể đưa ra yêu cầu POST hoặc PUT. Và cuối cùng, nếu họ muốn xóa một tệp khỏi máy chủ, họ sẽ đưa ra yêu cầu XÓA.
  2. Kiến trúc là máy khách / máy chủ, không trạng thái, phân lớp và hỗ trợ bộ nhớ đệm -
  • Máy khách-máy chủ là kiến ​​trúc điển hình trong đó máy chủ có thể là máy chủ web lưu trữ ứng dụng và máy khách có thể đơn giản như trình duyệt web.
  • Không trạng thái có nghĩa là trạng thái của ứng dụng không được duy trì trong REST.

    Ví dụ: nếu bạn xóa tài nguyên khỏi máy chủ bằng lệnh DELETE, bạn không thể mong đợi thông tin xóa đó được chuyển cho yêu cầu tiếp theo.

    Để đảm bảo rằng tài nguyên bị xóa, bạn cần đưa ra yêu cầu GET. Yêu cầu GET trước tiên sẽ được sử dụng để lấy tất cả các tài nguyên trên máy chủ. Sau đó, người ta sẽ cần xem tài nguyên có thực sự bị xóa hay không.

RESTFul Nguyên tắc và Ràng buộc

Kiến trúc REST dựa trên một số đặc điểm được trình bày chi tiết dưới đây. Bất kỳ dịch vụ web RESTful nào cũng phải tuân thủ các đặc điểm dưới đây để nó được gọi là RESTful. Những đặc điểm này còn được gọi là các nguyên tắc thiết kế cần phải tuân theo khi làm việc với các dịch vụ dựa trên RESTful.

  1. RESTFul Máy khách-Máy chủ

Đây là yêu cầu cơ bản nhất của kiến ​​trúc dựa trên REST. Nó có nghĩa là máy chủ sẽ có một dịch vụ web RESTful sẽ cung cấp chức năng cần thiết cho máy khách. Ứng dụng khách gửi yêu cầu đến dịch vụ web trên máy chủ. Máy chủ sẽ từ chối yêu cầu hoặc tuân thủ và cung cấp phản hồi thích hợp cho máy khách.

  1. Không quốc tịch

Khái niệm không trạng thái có nghĩa là khách hàng phải đảm bảo rằng tất cả các thông tin cần thiết được cung cấp cho máy chủ. Điều này là bắt buộc để máy chủ có thể xử lý phản hồi một cách thích hợp. Máy chủ không nên duy trì bất kỳ loại thông tin nào giữa các yêu cầu từ máy khách. Đó là một chuỗi câu hỏi-trả lời độc lập rất đơn giản. Máy khách hỏi một câu hỏi, máy chủ sẽ trả lời câu hỏi đó một cách thích hợp. Khách hàng sẽ hỏi một câu hỏi khác. Máy chủ sẽ không nhớ kịch bản trả lời câu hỏi trước đó và sẽ cần trả lời câu hỏi mới một cách độc lập.

  1. Bộ nhớ đệm

Khái niệm Cache là để giúp giải quyết vấn đề không trạng thái đã được mô tả ở điểm cuối cùng. Vì mỗi yêu cầu máy khách của máy chủ là độc lập về bản chất, đôi khi máy khách có thể yêu cầu lại máy chủ cho cùng một yêu cầu. Điều này là mặc dù nó đã yêu cầu nó trong quá khứ. Yêu cầu này sẽ chuyển đến máy chủ và máy chủ sẽ đưa ra phản hồi. Điều này làm tăng lưu lượng truy cập trên toàn mạng. Bộ nhớ đệm là một khái niệm được triển khai trên máy khách để lưu trữ các yêu cầu đã được gửi đến máy chủ. Vì vậy, nếu cùng một yêu cầu được đưa ra bởi máy khách, thay vì đi đến máy chủ, nó sẽ đi đến bộ nhớ cache và lấy thông tin cần thiết. Điều này giúp tiết kiệm lưu lượng mạng đến và đi từ máy khách đến máy chủ.

  1. Hệ thống phân lớp

Khái niệm về hệ thống phân lớp là bất kỳ lớp bổ sung nào chẳng hạn như lớp phần mềm trung gian có thể được chèn giữa máy khách và máy chủ thực sự lưu trữ dịch vụ web RESTFul (Lớp phần mềm trung gian là nơi tạo ra tất cả logic nghiệp vụ. Đây có thể là một dịch vụ bổ sung được tạo mà máy khách có thể tương tác trước khi nó thực hiện cuộc gọi đến dịch vụ web.). Nhưng việc giới thiệu lớp này cần phải minh bạch để không làm xáo trộn sự tương tác giữa máy khách và máy chủ.

  1. Giao diện / Hợp đồng đồng nhất

Đây là kỹ thuật cơ bản về cách các dịch vụ web RESTful hoạt động. RESTful về cơ bản hoạt động trên lớp web HTTP và sử dụng các động từ chính bên dưới để làm việc với các tài nguyên trên máy chủ

  • ĐĂNG - Để tạo tài nguyên trên máy chủ
  • GET - Để truy xuất tài nguyên từ máy chủ
  • PUT - Để thay đổi trạng thái của tài nguyên hoặc cập nhật nó
  • XÓA - Để xóa hoặc xóa tài nguyên khỏi máy chủ

Tạo dịch vụ web Restful đầu tiên của bạn trong ASP.NET

Bây giờ trong hướng dẫn REST API này, chúng ta sẽ tìm hiểu cách tạo một dịch vụ web Restful trong ASP.NET:

Các dịch vụ web có thể được tạo bằng nhiều ngôn ngữ khác nhau. Nhiều môi trường phát triển tích hợp có thể được sử dụng để tạo các dịch vụ dựa trên REST.

Trong ví dụ về API RESTful này, chúng ta sẽ tạo ứng dụng REST của mình trong .Net bằng Visual Studio. Trong ví dụ của chúng tôi, đối với các dịch vụ web Restful, chúng tôi sẽ mô phỏng ví dụ dịch vụ REST sau đây.

Chúng tôi sẽ có một dịch vụ web Restful sẽ hoạt động trên tập dữ liệu dưới đây.

Tập hợp dữ liệu dưới đây đại diện cho một ví dụ API REST về việc có một công ty trình bày các Hướng dẫn mà họ có dựa trên Tutorialid.

Hướng dẫn TutorialName
0 Mảng
1 Hàng đợi
2 Ngăn xếp

Trong ví dụ hướng dẫn API REST của chúng tôi, chúng tôi sẽ triển khai các Động từ khôi phục bên dưới.

  1. NHẬN Hướng dẫn - Khi khách hàng gọi API Phục hồi này, họ sẽ được cung cấp toàn bộ bộ Hướng dẫn có sẵn từ dịch vụ web.
  2. NHẬN Tutorial / Tutorialid - Khi khách hàng gọi API Restful này, họ sẽ được đặt tên Hướng dẫn dựa trên Tutorialid do khách hàng gửi.
  3. POST Tutorial / Tutorialname - Khi một máy khách gọi API Restful này, máy khách sẽ gửi yêu cầu chèn một Tutorialname. Sau đó, dịch vụ web sẽ thêm tên Hướng dẫn đã gửi vào bộ sưu tập.
  4. DELETE Tutorial / Tutorialid- Khi một ứng dụng khách gọi API Phục hồi này, khách hàng sẽ gửi yêu cầu xóa Tên Hướng dẫn dựa trên Tutorialid. Sau đó, dịch vụ web sẽ xóa tên Hướng dẫn đã gửi khỏi bộ sưu tập.

Hãy làm theo các bước bên dưới trong hướng dẫn RESTful API này để tạo các dịch vụ web RESTful đầu tiên của chúng tôi, thực hiện việc triển khai ở trên.

Bước 1) Bước đầu tiên là tạo một ứng dụng Web Asp.Net trống. Từ Visual Studio 2013, bấm vào tùy chọn menu Tệp-> Dự án mới.

Khi bạn nhấp vào tùy chọn Dự án Mới, Visual Studio sau đó sẽ cung cấp cho bạn một hộp thoại khác để chọn loại dự án và cung cấp các chi tiết cần thiết của dự án. Điều này được giải thích trong bước tiếp theo của hướng dẫn RESTful API này

Bước 2) Trong bước này,

  1. Đảm bảo chọn mẫu web RESTful C # của ứng dụng Web ASP.NET trước. Dự án phải thuộc loại này để tạo dự án dịch vụ web. Bằng cách chọn các tùy chọn này, Visual Studio sau đó sẽ thực hiện các bước cần thiết để thêm các tệp cần thiết được yêu cầu bởi bất kỳ ứng dụng dựa trên web nào.
  2. Đặt tên cho dự án của bạn mà trong trường hợp của chúng tôi là "Webservice.REST".
  3. Sau đó, đảm bảo cung cấp một vị trí, nơi các tệp dự án sẽ được lưu trữ.

Sau khi hoàn tất, bạn sẽ thấy tệp dự án được tạo trong trình khám phá giải pháp của bạn trong Visual Studio 2013.

Bước 3) Bước tiếp theo là tạo tệp dịch vụ web sẽ có dịch vụ web RESTful

  1. Đầu tiên, nhấp chuột phải vào tệp dự án như hình dưới đây
  1. Trong bước này,
    1. Nhấp chuột phải vào tệp dự án
    2. Chọn tùy chọn "Thêm-> mục mới."

Trong hộp thoại xuất hiện, bạn cần thực hiện các thao tác sau

  1. Chọn tùy chọn của Dịch vụ WCF (hỗ trợ Ajax) - Chọn một tệp thuộc loại này, nó khiến Visual studio thêm một số mã cơ bản giúp tạo một dịch vụ web RESTful. WCF là viết tắt của Windows Communication Foundation. WCF là một thư viện dành cho các ứng dụng của nhiều nền tảng khác nhau hoặc cùng một nền tảng để giao tiếp qua các giao thức khác nhau như TCP, HTTP, HTTPS. Ajax về cơ bản là JavaScript và XML không đồng bộ. AJAX cho phép các trang web được cập nhật không đồng bộ bằng cách trao đổi một lượng nhỏ dữ liệu với máy chủ phía sau.
  2. Tiếp theo, đặt tên cho dịch vụ là TutorialService trong trường hợp của chúng tôi.
  3. Cuối cùng, nhấp vào nút Thêm để thêm dịch vụ vào giải pháp.

Bước 4) Bước tiếp theo là thực hiện thay đổi cấu hình để cho phép dự án này hoàn thành công việc với các dịch vụ web RESTful. Điều này yêu cầu thực hiện thay đổi đối với tệp có tên Web.config . Tệp này xuất hiện trong cùng một cửa sổ với tệp dự án Webservice. Tệp Web.config chứa tất cả các cấu hình giúp ứng dụng web hoạt động như bình thường. Thay đổi đang được thực hiện thực sự cho phép ứng dụng gửi và nhận dữ liệu như một dịch vụ web RESTful thuần túy.

  1. Nhấp vào tệp Web.config để mở mã
  1. Tìm dòng
  1. Thay đổi dòng thành

Bước 5) Bước tiếp theo trong hướng dẫn RESTful API này là thêm mã của chúng tôi để triển khai. Tất cả mã được đề cập bên dưới phải được viết trong tệp TutorialService.svc

  1. Bit đầu tiên là thêm mã để đại diện cho dữ liệu của chúng tôi sẽ được sử dụng trong chương trình của chúng tôi. Vì vậy, chúng ta sẽ có một danh sách các biến chuỗi với các giá trị là "Mảng", "Hàng đợi" và "Ngăn xếp". Điều này sẽ đại diện cho tên hướng dẫn có sẵn thông qua dịch vụ web lưu trữ của chúng tôi.
namespace Webservice.REST{[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowedpublic class TutorialService{private static List  lst = new List  (new String[] {"Arrays","Queues","Stacks"});  

Bước 6) Tiếp theo, chúng tôi sẽ xác định mã cho phương thức GET của chúng tôi. Mã này cũng sẽ nằm trong cùng một tệp TutorialService.svc. Mã này sẽ chạy bất cứ khi nào chúng tôi gọi dịch vụ từ trình duyệt của mình.

Phương pháp dưới đây sẽ được sử dụng để thực hiện tình huống được đề cập dưới đây

  • Nếu người dùng muốn có một danh sách tất cả các Hướng dẫn, thì đoạn mã dưới đây sẽ cần được viết để thực hiện điều này.
[WebGet(UriTemplate="/Tutorial")]public String GetAllTutorial(){int count = 1st.Count;String TutorialList = "";for (int i = 0; i < count; i++)TutorialList = TutorialList + lst[i] + ",";return TutorialList;}

Giải thích mã: -

  1. Dòng mã đầu tiên là quan trọng nhất. Nó được sử dụng để xác định cách chúng ta có thể gọi phương thức này thông qua một URL. Vì vậy, nếu liên kết đến dịch vụ web của chúng tôi là http: // localhost: 52645 / TutorialService.svc và nếu chúng tôi nối '/ Tutorial' vào URL là http: // localhost: 52645 / TutorialService.svc / Tutorial , thì mã trên sẽ được gọi. Thuộc tính của 'WebGet' là một tham số cho phép phương thức này là một phương thức RESTful để nó có thể được gọi thông qua động từ GET.
  2. Đoạn mã này được sử dụng để xem qua danh sách các chuỗi của chúng ta trong biến 'lst' và trả lại tất cả chúng cho chương trình đang gọi.

Bước 7) Đoạn mã dưới đây đảm bảo rằng nếu cuộc gọi GET được thực hiện tới Dịch vụ Hướng dẫn với id Hướng dẫn, thì nó sẽ trả về Tên Hướng dẫn tương ứng dựa trên id Hướng dẫn.

[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")]public String GetTutorialbyID(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);return lst[pid];}

Giải thích mã: -

  1. Dòng mã đầu tiên là quan trọng nhất. Nó được sử dụng để xác định cách chúng ta có thể gọi phương thức này thông qua một URL. Vì vậy, nếu liên kết đến dịch vụ web của chúng tôi là http: // localhost: 52645 / TutorialService.svc và nếu chúng tôi nối '/ Tutorial / {Tutorialid}' vào URL, thì chúng tôi có thể gọi dịch vụ web là http: //localhost:52645/TutorialService.svc/Tutorial/1 làm ví dụ. Sau đó, dịch vụ web sẽ cần trả lại tên Hướng dẫn có id Hướng dẫn # 1.
  2. Phần mã này được sử dụng để trả về "Tên hướng dẫn" có id Hướng dẫn được chuyển đến phương thức web.
  • Theo mặc định, điều cần nhớ là bất cứ thứ gì được chuyển đến URL trong trình duyệt đều là một chuỗi.
  • Nhưng bạn phải nhớ rằng Chỉ mục trong danh sách của chúng tôi phải là một số nguyên, vì vậy chúng tôi đang thêm mã cần thiết để chuyển đổi Tutorialid thành Số nguyên trước tiên và sau đó sử dụng nó để truy cập vị trí chỉ mục trong danh sách của chúng tôi và
  • Sau đó trả lại giá trị cho chương trình đang gọi tương ứng.

Bước 8) Bước tiếp theo là viết mã cho phương thức POST của chúng tôi. Phương thức này sẽ được gọi bất cứ khi nào chúng ta muốn thêm giá trị chuỗi vào danh sách Hướng dẫn thông qua phương thức POST. Ví dụ: nếu bạn muốn thêm tên Hướng dẫn của "Kiểm thử phần mềm" thì bạn sẽ cần sử dụng phương pháp POST.

Giải thích mã: -

  1. Dòng đầu tiên là thuộc tính 'WebInvoke' đã được đính kèm với phương thức của chúng tôi. Điều này cho phép phương thức được gọi thông qua lệnh gọi POST. Thuộc tính RequestFormat và ResponseFormat phải được đề cập dưới dạng JSON, vì khi đăng các giá trị lên dịch vụ web RESTFul, các giá trị phải ở định dạng này.
  2. Dòng mã thứ hai được sử dụng để thêm giá trị chuỗi được truyền qua lệnh gọi POST vào danh sách chuỗi Hướng dẫn hiện có của chúng tôi.

Bước 9) Cuối cùng, chúng tôi sẽ thêm phương thức của chúng tôi để xử lý hoạt động DELETE. Phương thức này sẽ được gọi bất cứ khi nào chúng ta muốn xóa một giá trị chuỗi hiện có khỏi danh sách Hướng dẫn của chúng ta thông qua phương thức DELETE.

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Ison,UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.Wrapped)]public void DeleteTutorial(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);1st.RemoveAt(pid);}

Giải thích mã: -

  1. Dòng đầu tiên là thuộc tính 'WebInvoke' đã được đính kèm với phương thức của chúng tôi. Điều này cho phép phương thức được gọi thông qua lệnh gọi POST. Thuộc tính RequestFormat và ResponseFormat phải được đề cập dưới dạng JSON, vì khi đăng các giá trị lên dịch vụ web RESTFul, các giá trị phải ở định dạng này. Lưu ý rằng tham số Phương thức đang được đặt thành "DELETE." Điều này có nghĩa là bất cứ khi nào chúng ta đưa ra động từ DELETE, phương thức này sẽ được gọi.
  2. Dòng mã thứ hai được sử dụng để thực hiện Hướng dẫn được gửi qua lệnh gọi DELETE và sau đó xóa id đó khỏi danh sách của chúng tôi. (Hàm Int32 trong mã được sử dụng để chuyển đổi ID Hướng dẫn từ biến chuỗi thành số nguyên).

Chạy dịch vụ web Restful đầu tiên của bạn

Bây giờ chúng ta đã tạo toàn bộ dịch vụ web của mình trong phần trên. Hãy xem cách chúng ta có thể chạy dịch vụ Hướng dẫn để nó có thể được gọi từ bất kỳ máy khách nào.

Để chạy dịch vụ web, vui lòng làm theo các bước dưới đây

Bước 1) Nhấp chuột phải vào tệp Dự án - Webservice.REST

Bước 2) Chọn tùy chọn menu 'Đặt làm Dự án StartUp'. Điều này sẽ đảm bảo rằng dự án này được chạy khi Visual Studio chạy toàn bộ giải pháp

Bước 3) Bước tiếp theo là chạy chính dự án. Bây giờ, tùy thuộc vào trình duyệt mặc định được cài đặt trên hệ thống, tên trình duyệt thích hợp sẽ xuất hiện bên cạnh nút chạy trong Visual Studio. Trong trường hợp của chúng tôi, chúng tôi có Google Chrome hiển thị. Chỉ cần nhấp vào nút này.

Đầu ra: -

Khi dự án được chạy, bạn có thể duyệt đến phần TutorialService.svc / Tutorial của mình và bạn sẽ nhận được kết quả bên dưới.

Trong đầu ra ở trên,

  • Bạn có thể thấy rằng trình duyệt đang gọi động từ 'GET' và thực thi phương thức 'GetAllTutorial' trong dịch vụ web. Mô-đun này được sử dụng để hiển thị tất cả các Hướng dẫn được cung cấp bởi dịch vụ web của chúng tôi.

Thử nghiệm dịch vụ web Restful đầu tiên của bạn

Trong phần trên, chúng ta đã biết cách sử dụng trình duyệt để thực thi động từ 'GET' và gọi 'GetAllTutorial.'

  1. Bây giờ chúng ta hãy sử dụng trình duyệt để thực hiện trường hợp sử dụng sau.

NHẬN Tutorial / Tutorialid - Khi khách hàng gọi API Restful này, họ sẽ được đặt tên Hướng dẫn dựa trên Tutorialid do khách hàng gửi

Trong trình duyệt của bạn, nối chuỗi / 1 sau từ Hướng dẫn trong URL. Nếu bạn nhấn nút enter, bạn sẽ nhận được đầu ra bên dưới

Bây giờ bạn sẽ thấy đầu ra của Hàng đợi thực sự tương ứng với số 1 trong danh sách Chuỗi hướng dẫn của chúng tôi. Điều này có nghĩa là phương thức 'GetTutorialbyID' hiện đang được gọi từ Webservice của chúng tôi. Nó cũng cho thấy rằng giá trị của 1 đang được chuyển thành công qua trình duyệt đến dịch vụ web và phương pháp của chúng tôi và đó là lý do tại sao chúng tôi nhận được giá trị tương ứng chính xác của "Hàng đợi" trong trình duyệt.

  1. Tiếp theo, hãy sử dụng dịch vụ web của chúng tôi bằng cách thực hiện tình huống dưới đây. Đối với điều này, bạn cần cài đặt công cụ có tên "Fiddler", đây là một công cụ có thể tải xuống miễn phí từ trang web.

POST Tutorial / Tutorialname - Khi một máy khách gọi API Restful này, máy khách sẽ gửi yêu cầu chèn một Tutorialname. Sau đó, dịch vụ web sẽ thêm tên Hướng dẫn đã gửi vào bộ sưu tập.

Chạy công cụ Filddler và thực hiện các bước dưới đây;

  1. Chuyển đến phần nhà soạn nhạc. Điều này được sử dụng để tạo các yêu cầu có thể được gửi đến bất kỳ trang web nào

    ứng dụng.

  2. Đảm bảo loại yêu cầu là "POST" và URL chính xác đang được truy cập, trong trường hợp của chúng tôi phải là http: // localhost: 52645 / TutorialService.svc / Tutorial
  3. Đảm bảo Loại-Nội dung được đánh dấu là ứng dụng / json. Hãy nhớ rằng phương thức yêu cầu POST trong dịch vụ Web của chúng tôi chỉ chấp nhận dữ liệu kiểu json, vì vậy chúng tôi cần đảm bảo điều này được chỉ định khi chúng tôi gửi yêu cầu đến ứng dụng của mình.
  4. Cuối cùng, chúng ta cần nhập dữ liệu của mình. Hãy nhớ rằng phương thức của chúng tôi cho POST chấp nhận một tham số được gọi là 'str.' Vì vậy, ở đây chúng tôi đang chỉ định rằng chúng tôi muốn thêm một giá trị được gọi là "Cây" vào bộ sưu tập tên Hướng dẫn của chúng tôi và đảm bảo rằng nó được gắn thẻ với tên biến str.

Cuối cùng, chỉ cần nhấp vào nút Execute trong fiddler. Thao tác này sẽ gửi yêu cầu đến dịch vụ web để ĐĂNG dữ liệu "Cây" lên dịch vụ web của chúng tôi.

Bây giờ, khi chúng tôi duyệt đến URL Hướng dẫn để hiển thị tất cả các chuỗi trong danh sách Hướng dẫn của chúng tôi, bây giờ bạn sẽ thấy giá trị của "Cây" cũng hiện diện. Điều này cho thấy rằng yêu cầu ĐĂNG lên dịch vụ web đã được thực hiện thành công và nó đã được thêm thành công vào Danh sách Hướng dẫn của chúng tôi.

  1. Tiếp theo, hãy sử dụng dịch vụ web của chúng tôi bằng cách thực hiện tình huống dưới đây. Đối với điều này, chúng tôi cũng cần sử dụng công cụ fiddler

DELETE Tutorial / Tutorialid- Khi một ứng dụng khách gọi API Phục hồi này, khách hàng sẽ gửi yêu cầu xóa Tên Hướng dẫn dựa trên Tutorialid. Sau đó, dịch vụ web sẽ xóa tên Hướng dẫn đã gửi khỏi bộ sưu tập.

Chạy công cụ Filddler và thực hiện các bước dưới đây

  1. Chuyển đến phần nhà soạn nhạc. Điều này được sử dụng để tạo các yêu cầu có thể được gửi đến bất kỳ trang web nào

    ứng dụng.

  2. Đảm bảo rằng loại yêu cầu là "DELETE" và URL chính xác đang được truy cập, trong trường hợp của chúng tôi phải là http: // localhost: 52645 / TutorialService.svc / Tutorial . Đảm bảo rằng id được sử dụng để xóa một chuỗi trong danh sách được gửi qua URL dưới dạng tham số. Trong ví dụ REST của chúng tôi, chúng tôi đang gửi 1 vì vậy điều này sẽ xóa phần tử thứ 2 trong bộ sưu tập của chúng tôi, đó là "Hàng đợi".

Cuối cùng, chỉ cần nhấp vào nút Execute trong fiddler. Thao tác này sẽ gửi yêu cầu tới dịch vụ web để XÓA dữ liệu "Hàng đợi" tới dịch vụ web của chúng tôi.

Bây giờ, khi chúng tôi duyệt đến URL Hướng dẫn để hiển thị tất cả các chuỗi trong danh sách Hướng dẫn của chúng tôi, bạn sẽ nhận thấy rằng giá trị của "Hàng đợi" không còn nữa.

Điều này cho thấy rằng yêu cầu DELETE đối với dịch vụ web đã được thực hiện thành công. Phần tử ở chỉ mục số 1 trong danh sách chuỗi Hướng dẫn của chúng tôi đã được xóa thành công.

Tóm lược

  • REST là viết tắt của REpresentational State Transfer. REST được sử dụng để xây dựng các dịch vụ web có dung lượng nhẹ, có thể bảo trì và có thể mở rộng về bản chất.
  • Ngày càng có nhiều ứng dụng chuyển sang kiến ​​trúc Restful. Điều này là do hiện nay có rất nhiều người sử dụng thiết bị di động và nhiều ứng dụng khác nhau di chuyển lên đám mây.
  • Các khía cạnh chính của REST là các tài nguyên nằm trên máy chủ và các động từ GET, POST, PUT và DELETE, có thể được sử dụng để làm việc với các tài nguyên này.
  • Visual Studio và.Net có thể được sử dụng để tạo các dịch vụ web Restful.
  • Khi Kiểm tra các dịch vụ web cho POST và PUT, bạn cần sử dụng một công cụ khác có tên là fiddler có thể được sử dụng để gửi yêu cầu POST và PUT đến máy chủ.