Delphi 7 のアプリケーションに (非常に単純な) 自作の REST サーバーを組み込みました (ICS + いくつかのスタッフを使用)。現在、私は Delphi XE2 Pro (DataSnap なし) を使用しており、より標準的なソリューションに変更しますが、それでもシンプルです。
これを行うのは簡単ですか?
Delphi 7 のアプリケーションに (非常に単純な) 自作の REST サーバーを組み込みました (ICS + いくつかのスタッフを使用)。現在、私は Delphi XE2 Pro (DataSnap なし) を使用しており、より標準的なソリューションに変更しますが、それでもシンプルです。
これを行うのは簡単ですか?
Habari Web コンポーネントフレームワークは、Delphi 2009 以降用の単純な (商用) HTTP サーバー フレームワークです。TdjRestfulComponentには、REST 拡張機能も含まれています。(私はこれらのライブラリの開発者です)
TdjRestfulComponent の構成は、属性/注釈のようなスタイル、またはより伝統的な手続き型の方法で行うことができます。
すべての HTTP メソッドとコンテンツ タイプは、異なる匿名メソッドにマップでき、同じリソース URI を共有できます (要求されたコンテンツ タイプに応じて、1 つの URI、異なるリソース表現)。たとえば/myresource
、HTML、XML、または JSON でリソースを表すには、次のように構成できます。
// respond to HTML browser GET request
&Path('myresource');
&Produces('text/html');
GET(procedure(Request: TRequest; Response: TResponse)
begin
Response.ContentText := '<html>Hello world!</html>';
end);
// respond to XML client
&Path('myresource');
&Produces('application/xml');
GET(procedure(Request: TRequest; Response: TResponse)
begin
Response.ContentText := '<xml>Hello world!</xml>';
end);
// respond to JSON client
&Path('myresource');
&Produces('application/json');
GET(procedure(Request: TRequest; Response: TResponse)
begin
Response.ContentText := '{"msg":"Hello world!"}';
end);
このコンポーネントは、次のパス パラメータもサポートしています。
&Path('orders/{orderId}/lines/{lineNo');
次のようなURLを解析します
http://mydomain.local:8080/context/orders/65432/lines/1
追加のクエリ パラメータ (orderId=65431
およびlineNo=1
)に
必要なほど単純かどうかはわかりませんが、mORMot フレームワークをご覧ください。
これは、クライアント サーバー ORM とインターフェイス ベースのサービス (WCF など) を備えた完全な RESTful サーバーです。軽量で高速ですが、多くの機能も備えています。
どんな種類のアプリケーションでも実行できます。たとえば、一部のユーザーは ORM も SOA も使用せず、非常に高速な RESTful サーバーとしてのみ使用しています。
Delphi 6 から XE2 までのすべてのバージョンの Delphi で動作し、特定のライセンスは必要ありません。Starter エディションでも動作します。データベース接続も含まれます。
それ自体は「標準」ではありませんが、REST、HTTP、JSON などのよく知られた標準を使用しています。URI ごとのビルトイン認証と、インターフェイスごと/メソッドごとのセキュリティ ポリシー全体があります。800 ページを超えるドキュメントと、完全な回帰テストのセットが含まれています。簡単に始めるには、サンプルを見てください。簡単だと思うかもしれません。
そしてそれはビールのように自由であり、鳥のようです。