2016-04-07 18 views
0

最近、私の同僚は、さまざまなWebサーバー(.net、java、android)のAPIを設計して、必要なデータを取得したいと考えています。APIの入力がSQLクエリ文字列を受け取るとき

しかし、APIはSQLクエリ文字列しか受け取りません...私はAPIクライアントがすぐに問題になると感じています。

私が思ったAPIの目的は、「DALを作成するにはどうすればよいですか」、「テーブルの関係はデータベースにありますか?」などの心配はありません。 APIにパラメータを渡すだけで、必要なすべてのデータを取得できます。

パラメータがSQLクエリ文字列になるとは思わない.APIにSQLクエリ文字列を渡す必要がある場合は、ADOまたはEFを直接使用して自分でデータを取得するのはなぜですか?私のWebサーバーのフレームワークはASP.NETです。

なぜAPIが存在するのかマネージャはDAL(BO)にデータを取得し、DAL(BO)もJAVAチームのWebサーバーで動作する必要があるためです。

次は単純なアーキテクチャです。

クライアント--- Webサーバー--- --- APIデータベース

が私の欠点は何ですか??いないので、悪いAPIメソッドにSQLクエリ文字列を渡すされ、間違った??アム??

答えて

1

データを取得するためにSQLクエリ文字列をAPIに送信することは、世界で最悪の考えです。

基本的に誰かがあなたのシステムをハックすると、あなたのデータベースのために素晴らしいAPIを書いています。

これを行う場合は、データベース接続方法を直接公開することもできます。 APIは必要ありません。奇妙なアイデア!!!

必要な作業を行うためのAPIを開発します。それを変更する必要がある場合は、変更してください。

EDIT:彼らは柔軟性が返されるデータを変更したい場合は

が、その後、彼らは代わりにAPIにストアドプロシージャまたはビューの名前を送信することができます。 APIは、ストアド・プロシージャまたはビューを検証した後、そのストアド・プロシージャまたはビューを使用してデータベースに問合せを実行できます。

次に、重大なセキュリティ上の問題を発生させることなく、データベースのストアドプロシージャとビューを追加、削除、または変更できます。

+0

ええ彼はセキュリティを考慮して、APIにアクセスしたい人はまずトークンを取得する必要があります。それは良いですか? –

+1

100%安全です。いつも "もしあれば"と思ってください!セキュリティを失うと、盗難や削除によってすべてのデータが失われます。正しい実装でセキュリティを失った場合でも、侵入者が実行できる処理はまだ制限されています。 – CathalMF

関連する問題