0

私はASP.NET Web APIを初めて使用し、これをしばらく研究しています。確かに、私には決定麻痺があります。データベースに約 250 のテーブルがあるシステム用の REST のような API を作成したいと考えています。これは基本的に、ビジネス オブジェクトや ORM を使用しない、UI とデータ アクセス レイヤーを備えた 2 層システムです。

Web API コントローラーが受け入れる/返す必要があるかどうかを判断できません:

a) 名前と値のペアの IDictionary。SQL パラメーターにパッケージ化してデータ アクセス レイヤーに渡し、シリアル化された ado.net データ テーブルを返します。

b) 厳密に型指定された複合オブジェクト (POCO オブジェクト)。例: すべてのプロパティがデータベース内のフィールドと一致する Account クラス。

システム内のすべてのテーブルに POCO クラスを作成する必要がある場合、データをパッケージ化してデータ アクセス レイヤーに渡す以外には基本的に何もしないクラスが 250 以上存在します。

さらに、ルートごとにGET、POST、PUT、DELETEしかないため、Web Apiを介して公開したいデータベース内の基本的にすべてのテーブルに対してApiControllerを作成する必要があるようです? 頭を机にぶつけて助けてください。

4

1 に答える 1

0

以下の回答をご覧ください。

1. **「名前と値のペアの IDictionary」を使用しても、リソースが GET メソッドのみをサポートしている場合は問題ありません。ユーザーにデータを投稿または更新してもらいたい場合、どのようにデータを検証しますか? また、HATEOASを追加したい場合、どのようにしますか?拡張に関しては、以下のようなネストされたオブジェクト階層をどのようにサポートしますか?

public class Product 
{
    public int Id { get; set; }
    public string Name { get; set; }

    public string Category { get; set; }

    public decimal Price { get; set; }

    public IList<PurchaseDetail> PurchaseHistory { get; set; }
}

public class PurchaseDetail
{
    public int Id { get; set; }

    public DateTime PurchaseDate { get; set; }

    public decimal Cost { get; set; }
}

2.異なるルートを定義することで、リソースごとに複数の GET、POST などを持つことができます。このリンクの詳細http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api

于 2014-05-05T00:08:22.110 に答える