2017-05-01 15 views
1

私はASP.NETコア1.1を使用していますが、現在Rest APIを作成中です。ページングと追加のリンクを追加するにはどうすればよいですか?

Restアーキテクチャの規約を尊重するため、応答を送信する前にページネーションと追加情報を追加したいと思います。

これは私のコントローラです:

[HttpGet(Name = "GetUniversities")] 
public IEnumerable<University> GetUniversities() 
{ 
     return _univRepository.GetAll(); 
} 

GETALL():

public IEnumerable<University> GetAll() 
{ 
    return _context.Universities.ToList(); 
} 

実は、私は何をしたいことは、このような何かをレンダリングすることです。

JSON reponse

しかし、私は動的にこの種のデータを生成する方法がわかりません。

ありがとうございます!

+0

ページングを行うために利用できるテイクメソッドがあります。これらのページを呼び出す方法は、ルートの設定方法によって異なります。 –

答えて

2

追加情報の意味が不明です。しかし、ユーザーに情報を返すビューモデルを構築することができます。そうすれば、レスポンスで送信する必要があるその他の情報にタグを付けることができます。ここでは、ページ分割を開始する簡単な例を示します。明らかにこれをあなたのリポジトリにも流し込むことができます。

[HttpGet()] 
[Route("api/GetUniversities/Page/{page:int}")] 
public IEnumerable<University> GetUniversities(int page) 
    { 
    return _univRepository.GetAll().Skip(page*10).Take(10); 
    } 

上記は、一度に10個を返送することを前提としています。

+0

あなたの返信ありがとう。実際に私がしたいのは、私がこのようなものをレンダリングできるように、私のGetUniversities()メソッドを編集することです。 https://i.stack.imgur.com/DLcgD.png。私のメソッドは、JSONの大学リストを再表示しています。 –

+0

イメージに表示されるすべてのことは、リポジトリメソッドに現在のページ番号を流し、スクリーンショットでjsonが表すviewModelだけを流すことによって行うことができます。 –

関連する問題