天天看點

使用ASP.NET Web Api建構基于REST風格的服務實戰系列教程【六】——實作資源間的關聯

前言

這一篇文章主要介紹一下資源間的關聯——例如在學生和課程之間就存在這樣的關聯:每一個課程都會有多個學生來選,如何擷取這些有關聯的資訊?如何實作選課的業務?對于用戶端應該怎麼來調用呢?下面給出解決方案:

配置對應的路由

對于上面的需求,我們可以先定制一個URI模闆:”api/courses/courseid/students/{userName}“,如果我們打算查詢所有選了courseId為5的學生,那麼用戶端就應該發送Get請求”api/courses/5/students/”.如果我們打算為使用者名為”TaiseerJoudeh“的學生選擇課程CourseId為5的課程,那麼就應該發送Post請求”api/courses/5/students/TaiseerJoudeh“。

為了實作上面說的,我們首先要在”WebApiConfig“中添加如下一條路由資訊:

可以看到在這裡courseId是必選的,而userName是可選的

建立響應的控制器

正如上面路由配置的,我們應該有一個“EnrollmentsController”,在這個控制器中我們應該包含2個方法:Get用來傳回對應的學生資訊,Post用來實作學生選課,下面上代碼:

下面測試一下我們的Post方法:我們打算為“TaiseerJoudeh”選擇CourseId為5的課程:

使用ASP.NET Web Api建構基于REST風格的服務實戰系列教程【六】——實作資源間的關聯

總結

對于資源間的關聯就這麼點到為止了,具體的應用在以後慢慢感悟了。對于之前給出的Get方法,有一個明顯的瑕疵:對于大量的資料,伺服器會全部傳回給用戶端,這是非常不好的,那麼下一章我們就來實作分頁。