2013-05-29 32 views
7

あなたからの経験をお聞きしたいと思いますか?データベースからデータを取得するためのAPIを最適に作成するにはどうすればよいですか。ビュー名またはプロシージャー名を送信した場合、これは安全上のtankneではまったく問題ありません。だから私は誰かがこれに関する経験やアイデアを持っているのだろうか?データベースからデータを取得/送信するためのAPI

たとえば、APIに接続するユーザーにアクセス権があることを示すフィールドが必要ですか?表と行のアクセス。

+0

SAASアーキテクチャをチェックしてください。 – Sebas

+0

どの言語? –

+2

あなたは賞品にすべての評判を使うことができますが、尋ねていることを明確にしない限り、誰もあなたに答えることはできません。 「dbからデータを取得するためのAPIを作成する」は、ホイールを再発明するように聞こえるか、わかりません。何をしようとしているか説明してください。 – TMS

答えて

3

私はそれを撃つでしょう。

あなたはすでにWeb APIについて言及していますので、これを使用していると仮定します。つまり、データベースの上にREST APIがあることを意味します。

観光情報:

  1. は、ユーザーに公開するデータモデル思い付きます。これは、データベースモデルとは多様に異なる可能性があります。あなたが店舗であれば、商品を保管するために2〜3種類のテーブルがあるかもしれませんが、1回のAPI呼び出しで「製品」を公開したいと考えています。

  2. データモデルに直面したら、テストを開始します。 Web APIコントローラー用の単体テストが必要で、作成しているデータベース呼び出しを模擬する方法を見つける必要があります。テストは、努力のの価値があるです!

  3. セキュリティ上、多くの選択肢があります。 HMAC(https://en.wikipedia.org/wiki/Hash-based_message_authentication_code)やOAuth(Best way to create a TOKEN system to authenticate web service calls?)、さらにはJWT(Secure WebAPI with a JWT)などから選択できます。

  4. ユーザーが認証されると、そのユーザーに権限を割り当てることができます。彼らは、アクセス権に応じて、読み取り、書き込み、および更新を行うことができます。これを制御するデータベーステーブルを持つことができます。

  5. 事前にバージョン管理を行うことをお勧めします。私のお勧めは、常にあなたのAPIの2つのバージョン(現在と前)を持つことです。 APIをデプロイし、非推奨のAPIと新しいAPIを初めてサポートするときに置き換えます。 2つ以上のバージョンをサポートしようとしないでください。

  6. Web APIを介してデータを送信する前に、データベースを抽象化する何らかのインタフェースを記述するのが最善です。これにより、必要に応じてデータベースを完全に交換することができます。ユニットテストにも役立ちます。

関連する問題