5

多くの言語には、Python用のFlaskやRuby用のSinatraなど、非常に小さなWebサイトやWebサービスを作成するためのマイクロフレームワークがあります。Squeakには、同等のものはないようです。Iliad、Seaside、AIDAはすべて、ほんの少しのサービスを提供するだけで非常に重いです。これを達成するための好ましい方法は何ですか?コマンチェまたはスワズーにハンダーを直接注入しますか?

4

4 に答える 4

6

「この特定のケースでは、文字通り、HTTPPOSTを介して処理を実行する必要のある3つのURLがあります。それだけです。」

非常に単純なケースでは、次のようにKomのHttpServiceに登録(またはサブクラス)することができます(クラスのコメントから、詳細/オプションを参照してください)。

    (HttpService on: 8080 named: 'Example Http Service')
    onRequestDo: [ :httpRequest | SomeGlobal processRequest: httpRequest ];
    start
于 2010-12-22T22:01:48.550 に答える
5

ティーポットも使用できます。Teapotは、Zinc HTTPコンポーネント上にあるマイクロWebフレームワークであり、シンプルさと使いやすさに重点を置いています。テストを除いて、500行未満のコードです。

Teapot on
    GET: '/hi' -> 'Bonjour!';
    GET: '/hi/<user>' -> [:req | 'Hello ', (req at: #user)];
    GET: '/say/hi/*' -> (Send message: #greet: to: greeter);
    start.

(ZnEasy get: 'http://localhost:1701/hi/user1') entity string. "Hello user1"

フィルタの前に、利用可能な口ひげテンプレート、出力トランスがあります。フレームワークは十分に文書化されています。

于 2014-12-01T05:30:46.400 に答える
3

私が思うに、より最新の情報(2012年末現在)を共有したいと思います。

亜鉛成分

現在、Pharo 1.4 / 2.0では、HTTPクライアント/サーバーのデファクトスタンダードはZincHTTPコンポーネントのようです。また、最新のSeasideバージョン(3.0)もZincに切り替わりました。

もちろん、Zincを直接使用して、Webサービスを実装したりWebページを提供したりすることもできます。

特にクラスを見て、(likeまたは)のようなクラスZnServerを検索してくださいZn*DelegateZnDefaultServerDelegateZnStaticFileServerDelegate

シーサイドREST

Seasideの最新バージョンには、RESTfulWebサービスのサポートが含まれています。これは、Webサービスの実装またはWebページの提供に使用できます。それはかなり簡単です。

詳細については、オンラインのSeasideブックの「RESTサービス」の章を参照してください。この章では、Webサービスの実装を中心に説明しますが、Webページでも機能します。

ラットパック

また、TimFelgentreffによって開発されたシナトラのようなWebフレームワークであるRatpackについても聞いたことがあります。2つのリポジトリがあります。githubのものはもっと最近のものだと思います。ここを参照してください:

この情報は、私が最近投稿した同様の質問からのものです。

于 2012-12-03T21:03:17.513 に答える
2

SwazooのSwazooSiteをそのようなマイクロWebサイトにサブクラス化することはできますが、すぐにもっと多くの機能が必要になると思います。したがって、これら3つのフレームワークのいずれかから直接開始する方が長期的には適切です。

それらが重いということは、おそらく単なる印象であり、そのような単純なWebサイトの使用法に関するより良いドキュメントが不足しています。また、フレームワークをブラックボックスとして見ると、内部的には複雑ですが、外部的には単純です。すべてのSmalltalk Webフレームワークは、他のWebフレームワークと比較して非常に単純であると言えます。

于 2010-12-22T20:37:14.173 に答える