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

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

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

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

API

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

Q&A

解決済

2回答

1770閲覧

APIサーバのフレームワーク選択について

websoler

総合スコア39

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

API

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

0グッド

3クリップ

投稿2020/09/07 22:33

いつもこちらのサイトにはお世話になっております。

APIサーバについて質問させてください。
因みに自分はバックエンド技術者ではありませんが、
業務でAPIサーバを立てる必要が生じました。

伺いたいのは以下2点です。

1.フレームワークに何を選ぶとよい?
2.データベースはなくてもよい?

サーバの要件は以下です。

最新のデスクトップPC程度のマシンに自前で立てる
秒間最大30リクエストに耐えられれば良い

まず1ですが、業務では8割がたpythonでコードを記述しています。
チーム全員がわかりやすい、という意味ではFlaskが適切なのかな?
と思っております。

一方で、
https://www.techempower.com/benchmarks/
ここのサイトを見ると、flask自体はメッチャ遅いです。
303位:flask-raw

バックエンドでよく聞くphpの方がまだ早そうです。
11位:php-ngx-pgsql

JavaScriptでアーキテクチャを統合できると聞く、モダンな?node.jsも
それほど早いわけではない。
116位:nodejs-mongodb-raw

しかし、パフォーマンスについては結局、サーバ本体に依存し、
サーバ本体がどの言語を最適に高速化しているかだけのようにも思えます。

1に関連していると思いますが、2についてです。

APIサーバのオンメモリ上に各種データを保持すれば
データベースは不要だと思っていますがいかがでしょうか?

例えばFlaskにしても、nodejsにしても、APIサーバ内で
変数を持たせれば、API要求に対してその変数の値を
更新したり、取得させればよいように思います。

世の中のシステムのDBアクセスはおそらくメッチャ高速なのだと思いますが、
自前のサーバPCでもないPCにAPIサーバを立てますので
DBアクセスも無視できない要素と思っております。

以上を踏まえて、WebAPIサーバとしましては、以下のいずれか、
またそれ以外の好ましい選択肢等ありましたら、ご教示頂けますでしょうか?

・DBレスなシステムなんだし、Flask、nodejs等で十分
・いや、DBはやっぱり必要だよ。総合パフォーマンスで優れている
nginx+phpが無難だよ
・いや、ネイティブ言語最強だよ、goでサーバ立てよう

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/09/08 01:15

まずは要件を適切に定義して、業務なら検証しましょう その上で不明な点、懸念点があれば、それを具体的に聞くべきです 具体的でない話は、ナレッジとして残す情報としても不適切になる可能性が高いです
hentaiman

2020/09/08 02:53

知ってる単語とちょっと検索した程度の知識を列挙しているだけのように感じ、どんな回答を期待しているのかが分かりません。 自前の最新のPCが世の中のサーバーより性能が悪い前提で考えられている点も気になりますが、少なくとも世間で稼働しているサービスのサーバーの方がDBアクセスを気にした環境やプログラムを構築しています。 実際に数日ぐらいちゃんと開発に使ってみて湧いた疑問点に対してであれば回答が出来るので試してみてはいかがでしょうか?goは知りませんが。
guest

回答2

0

ベストアンサー

「なんでもいい」以外の回答はない。
よっぽどの大規模にならない限り言語やDBの速度差なんて誤差でしかない。
無視していい。

投稿2020/09/08 06:17

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

websoler

2020/09/08 06:49

解答ありがとうございます。規模は本当に小さいので、使いやすいフレームワークで良さそうですね。
guest

0

フレームワークに何を選ぶとよい?

自分だったら、Laravelを最近用いているのでそれでAPI出しますね。Laravel、DB系は強いので。ただ、質問者さんはPHPをあまり使わないようですから、他の方が候補のフレームワークに対してどのくらい利用したことがあるのかも選定材料になるかもしれません。

データベースはなくてもよい?

要件次第。

投稿2020/09/08 03:40

kyoya0819

総合スコア10429

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

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

websoler

2020/09/08 22:19

ご回答ありがとうございます。 自社の別グループではCakePHPを使っていますが、Laravelにも少し知見を 広げてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問