ServiceStack WebとMicrosoftの組み込みWebapiの違いを試してみたいので、どんな利点があるのかを確かめたいので、今日からServiceStackのWebサービスアプリケーションを作ってみてみたいです
1: 新しい.NET 4.5のwebemptyプロジェクトを作成し、nugetコマンドを使ってServiceStackをインストールします:
.NETバージョンはバージョン4.5以上でなければならず、4.0プロジェクトは成功裏にインストールされません! 下の図に示す通りです。
2: 新しいモデルとサービスフォルダを作成する
以下のコードでリクエスト&レスポンスエンティティを作成します:
3: サービスフォルダ内にサービスインターフェースを作成する
4: このプロジェクトにGlobal.asaxという新しいグローバルアプリケーションクラスを作成し、コードは以下の通りです:
5: web.config 設定を変更し、新しい system.webServer ノードを追加すれば、完全な構成は以下の通りです。
これまでのところサービスは完了しており、プログラムを実行するとインターフェースが以下の通り表示されます。GetAllUserInfoRequest と GetByAgeUserInfoRequest は、実際の呼び出しメソッドとして理解できますここで定義されたパラメータは、下図のようにメソッドのリクエストパラメータとして解釈できます。
ServiceStackのサービスメソッドはAny、Get、Postと呼ばれ、これらはServiceStackがサポートするリクエストタイプでもあります。任意の方法で、サービスはHTTP GetとHTTP Postの両方で呼び出すことができます。 これにより、RESTFullスタイルのWebServicesの実装が強化され、簡素化されます。 これらの方法に愛を加えるだけでいいのです [ルート(...)]属性。 ServiceStackでは、メソッドとメソッドの違いは、サービスのパラメータとリクエストオブジェクトRequest DTOによって区別されますWCFのようにメソッド名で区別するのではなく、 これはですねリクエストされたDTOオブジェクトはServiceStack内の複数のサービス間で再利用できません。
getリクエストパラメータの後にformatパラメータを追加すると、format=json、format=xmlなどの応答タイプを返せますし、jsonpフォーマットもサポートされているようです。
例えば:http://localhost:52079//json/reply/GetAllUserInfoRequest?format=xml
まとめると、MicrosoftのWeb APIと比べてServiceStackはウェブ上のメソッドという概念を持たず、別のリクエストエンティティとしてメソッドであり、インターフェースドキュメントを自動的に生成でき、レスポンスのフォーマットもフォーマットで返すことができます(Microsoftのものも可能ですが、Microsoftよりもシンプルに感じます)
参考文献:https://www.cnblogs.com/woxpp/p/5012947.html
https://msdn.microsoft.com/zh-cn/magazine/dn342871.aspx
https://github.com/ServiceStack/ServiceStack/wiki
最後に、プロジェクトのソースコードを添付してください!
観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ 答える
|