web-dev-qa-db-ja.com

REST APIを使用して関数またはスクリプトを呼び出すことはできますか?

ワークアウトアプリとウェブサイトを作成したいとします。ユーザーがワークアウトの統計情報を入力し、アプリが統計情報をグラフのパーセンテージなどで表示します。

これは、プラットフォームがどのように機能するかを理解するためだけに、ワークアウトアプリを作成したくない例です。

Android、iOSアプリ、ウェブサイトが欲しいと思っています。すべて同じ機能を備えています。

私が読んだものから、REST APIはバックエンドに使用されます。これは、アプリとデータベースの間でデータを交換する簡単な方法です。しかし、データの操作はどうですか?

平均ワークアウト時間(またはもっと複雑なもの)を計算したいとします。デバイスで計算する必要があるので、アルゴリズムを3回作成(Android、iOS、およびWeb)するか、すべての計算をサーバーで実行する必要がありますか?

REST api(Pythonのイブ))のドキュメントを読み込もうとしましたが、get updateやdeleteなどのデータ操作しか見つかりませんでした。

REST APIはデータ操作のみを提供しますか、REST APIを使用して関数またはスクリプトを呼び出すことは可能ですか?

多分私はすべてを誤解したので、誰かがマルチデバイスプラットフォームでバックエンドがどのように機能するかを誰かに説明してもらえますか?

4
Babajaga

POST。を忘れました

REST(実際には他にもたくさんのことを学ぶ必要があります)についてもう少し学ぶ必要があります)しかし、 GET、PUT、PATCHまたはDELETE、それはおそらくPOSTになるでしょう

また、REST以外にもサーバーと通信する他の方法があることに注意してください。 WebSocketを立ち上げれば、ほとんど何でも好きなことができます。

いずれにせよ、RESTを使い続けたい場合は、GETで十分です。

2
Robert Harvey

これはRESTfulですか?

public PlanksTotalController : Controller
{
    public double Get(int reps, TimeSpan duration)
    {
        return reps * duration;
    }
}

多分そうでないかもしれません。いくつかの理想的なアーキテクチャの基準を満たしているかどうかは気にしません。私はプラットフォーム間で役立つサービスを作成したことを気にしています。私は、コードベースを必要な場所すべてで利用できる場所に集中化することで、コードベースを重複排除しました。

WebAPIは、生データを格納および取得するためだけのものではありません。計算できないとは何も言われていない。


ところで、私はあなたのエンドポイントが純粋な関数である限り(同じ入力が与えられれば、常に同じ出力を返す)、それらはcanは確かにRESTfulであると思います。与えられたリソースパス(~/PlankTotal?reps=2&duration=3.5)は常にその特定のリソース(数7)。

もちろん、APIをRESTfulであると宣言する際に、発見可能性など、他にも考慮すべき点がありますが、それだけではありません。はい。ビジネスロジックをサービスに一元化できます(そしてすべき)。

1
RubberDuck

クロスオリジンリソースシェアリングを使用して、スクリプトエンジンを評価し、評価された関数を返す変数としてスクリプトを送信できます。

0
Niklas