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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

432閲覧

Swiftとサーバーの連携

pegy

総合スコア245

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2020/05/30 00:55

初心者で非常に稚拙なことかもしれませんがお尋ねさせてください。
例えば、SWIFTで構築したIOSアプリケーションでユーザーが入力したテキストデータをサーバー(イメージとしてはレンタルサーバーのMYSQL)などに登録したり、反対に登録されたデータをqueryして取得したい様な物を実装する場合、一般的にどの様なアプローチで構築すれば良いのでしょうか?

例えば自分はPHPでウェブアプリケーションを構築する場合には、ウェブサーバー上のPHPにSQL文を書いて同じウェブサーバーの中にあるRDB(MYSQL)にアクセスすることで実装して(当たり前のことかもしれませんが・・)います。
その様な意味では、ウェブサーバー(レンタルサーバー)+PHP+MYSQLの環境と技術があれば実装できるということになります。

同じ様な要領でレンタルサーバーやクラウドサーバーにもSWIFTで直接SQL文を書いて実装するのかと思ってGoogle先生で「Swift サーバー連携」の様な形で調べてみたのですが、SWIFT+RubyやSWIFT+GOなどいろいろな記事が出てきて、一般的にどの様に実装すべきか迷子になっております。

もちろん、単純にユーザーが入力したテキストを出し入れすることや、ゲームアプリで都度、サーバー通信を行うケースなど様々なパターンがあるのかと思いますが、一般的な技術としてどの様に実装すべきかをアドバイスをいただけますでしょうか?

なお、個人的にはPHP(7.4)やSQLに関連する経験は上述の通り、少しだけございます。

よろしくお願い申し上げます。

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

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

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

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

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

hoshi-takanori

2020/05/30 01:26

iPhone からインターネット経由で MySQL に直接アクセスさせるのはセキュリティ上の問題があるので、pho (や Ruby や go など) で API サーバーというものを書いて、それ経由でアクセスするのが一般的です。
pegy

2020/05/30 11:31

コメントをいただき誠にありがとうございます。よくわかりました。 ちなみになんですがAPIにはアプリ以外からアクセスさせない様にするのが一般的なのでしょうか(例えば直接ブラウザで該当するAPIを叩いたら結果が表示される様な状況が良いのかどうかがセキュリティなんとなくよくないのかな?と思っています)仮に、アプリ以外からのアクセスを拒否しようと思った場合、その様な実装の仕方もあるものなのでしょうか? 例えば、このQittaの記事を書いていらっしゃる方はAPIを叩いた結果をブラウザでも表示できる様にしていらっしゃいます。(https://qiita.com/Raiu1210/items/cc323bbbfba45ccfa1b5) 例えば、パズドラでもモンストとかでも(古かったらすみません)ゲームアプリとかも同じ技術でAPIなどでユーザーデータ等をサーバーから取得しているのであれば同じURLをブラウザリクエストした場合、ユーザー情報などがブラウザ上でみれてしまう様な気がするのですが、いかがでしょうか? 初心者の稚拙な質問で申し訳ございませんが、よろしくお願い申し上げます。
hoshi-takanori

2020/05/30 17:13

API に限らず Web アクセス一般に言えることですが、それがブラウザなのか特定のアプリなのかということを確実に判断することは難しいです。HTTP(S) という、オープンなプロトコルに基づいて通信しているだけなので。一般的に APIKey と呼ばれるパスワードみたいなものをアプリごとに発行したりもしますが、アプリのコードや通信内容を解析すれば分かってしまうので。ユーザーごとの情報については、ログインしたユーザーを認証する仕組みをサーバー側できちんと用意すればほぼ安全にできます。
pegy

2020/05/31 04:47

承知をいたました。教えていただいた前提に基づき勉強を進めてみます! 御礼申し上げます!
guest

回答1

0

自己解決

上記の修正追記で解決したためクローズさせていただきます。
ご協力に感謝を申し上げます。

投稿2020/05/31 04:47

pegy

総合スコア245

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問