質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1421閲覧

Webサイト側細工なしでスマフォアプリからREST送信で自由なSQLクエリ発行するGetter発信コード例

dendenmushi

総合スコア98

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2017/11/11 12:40

編集2017/11/11 12:43

目的:自分のWebサイトに対して、Androidアプリから検索表示したい。
OS:windows10 pro
tool:visual studio 2017 community xamarin
Webサイト:CentOS,java,
DB:PostgreSQL

試したこと:一番初めにDBに直接SQLクエリをAndroidから発行して直にSELECTすることを考えました。こちらは結構容易に実現したのですが、セキュリティ上HTTP通信の方がよいとのことでWebAPIというものに興味をもち調べている次第です。かなり前からの技術でサイトなど見ていて今更感が否めない質問になってしまっていることは承知です。

参考書籍などgoot partsやRestFulというお勧め本を見つけまして読み始める予定ではいます。ただ、この場を持って端的に結論を教えて頂けたらと期待して質問させて下さい。

SQLクエリをHTTP通信でGETして結果を表示するにはどのようなコード記載をしていけばいいのでしょうか。REST通信のお試しとしてはhttps://teratail.com/questions/99721#
こちらの方でxamarinでGETしてそのページのhtml取得などはできているのはわかりました。

これをどうしたら
SELECT A FROM BTable WHERE C = 'test';
といったSQLクエリをREST通信として送り、jsonで受け取るように設定していくのかが疑問でなりません。

WEBサイトにはログインページがあり、ユーザーを限定しています。その次に検索ページを選択でき、そこで検索文言を入れてからGET送信をしています。
そのGET送信を調べることから始まるのでしょうか。

それともWEBサイト側で何かWebAPI公開のための細工が必要ということなのでしょうか。

一番ベストなのは、Webサイト側では一切細工を加えず、XamarinにてAndroidアプリを作る際に、自由にSQLクエリを編集してREST送信できるようにする実装ですが、それはそもそも見当違いな考えなのでしょうか。非常に基礎的なところですが、どなたか回答下さい。よろしくお願い致します。

GetterとしてのWebAPIを作成してSQLをクエリを実装できるのであれば、その参考となるコードなどサイトなどありましたらお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

WEBサイト側で何かWebAPI公開のための細工が必要ということなのでしょうか。

はい、そのとおりです。WebAPIとして何かを公開するのであれば、公開するためのコードが必要となります。

そして、WebAPIにしても、SQLを直接受け取るような構造は、基本的に取るべきでありません。というのも、SQL文を自由に受け入れるようにしてしまうと、

  • データの変更、削除
  • 見られてはいけないデータの取得
  • DBサーバに過剰な負荷をかけるDoS攻撃

など、多様な危険性を産んでしまうからです。外側からアクセスしたいものだけ、きちんと実装するしかありません。

投稿2017/11/11 13:06

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendenmushi

2017/11/11 13:31

早い回答ありがとうございます。そうなのですね。ということは、androidアプリ開発側でHttpClientのGet系のメソッドなどありますが、むしろそちら側の細工はメソッドが数種しかなく、Webサイト側のコード作成がメインの作りになるという認識で間違えないでしょうか。 もしDBもテーブルひとつだけでSELECTも単純な取得だけの場合、どんなコードになるのか差支えなければアドバイスなにか頂けないでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問