ビジネスクラスのサービスを迅速に展開WEBAPI

その後、フロントポスト、迅速要求フォーマットをパッケージに固定インターフェース、コードを変更する必要はありませんが、自動的にインターフェース呼び出し、実際にプロキシクラスのインタフェースを生成を行うことができます。

それはインタフェースの実装クラスWEBAPIコントローラとして展開する必要がどのようにライン?ちょうどインタフェースリクエストブローカー、ないサーバーです。

ABPは、原則は、公式ドキュメントを参照してくださいする必要があり、この時間をデビューさせるであろう。ABPは、迅速な展開の生成を達成することです。

私は公式文書がどの検査することができ、ABPの事を言うことはありません。

そのためABPオープンソースコンポーネント、統合された全体のものとしてあまりにも、私たちの小さな企業、使用の複雑、困難、ように私はこの事をスキップする予定。

私に必要なのは、ビジネス・インタフェースを実装するクラスはWEBAPI、ない他の機能を展開することができます。

戻るa've見つけプロジェクト動的Web APを研究します。プロジェクト住所:https://github.com/dotnetauth/Panda.DynamicWebApi.git

著者ボーエン住所:https://www.cnblogs.com/stulzq/p/11007770.html

最近で過ごした時間は、実際には、AOPインタフェースはASPを使用して、見て、私は、通常は使用しませんでした、WEBAPIで開い買います。

物事の研究著者は、私は小さなプロジェクトを使用することができます感じて、ダイナミックWEBAPIと呼ばれる著者が、実際には、それは単にwebRPCです。

私は違いがあるのいくつかの場所があり、ダウンnetcore3と一緒に過ごしました。基本的な原理は適切です。

2ポイントがあります。

1.合意によると、クラスを設定するコントローラであり、

それはASPNETコアWEBAPIとして想定するようにASPNETコア制約、前記コンテンツを、記載コントローラクラス決意。

ここで私は、コードの原作者を話さない、見ることができます興味を持って、私は私の話を、私たちのほとんど。

この方法は、インタフェースコントローラクラスがある見つけました

方法IsControllerを有するMVCコントローラクラスを検証するControllerFeatureProviderクラスを継承し、現在のタイプのコントローラであることを示すためにtrueを返します。

私のコードは、原判決が失敗した場合、コントローラかどうかを確認する方法をカスタマイズすることで、デリゲートを呼び出して、コンフィギュレーション、楽しいデリゲート型を渡しを提供します。

注意:クラスの古いバージョンを使用することができない、唯一のインタフェースを実装するクラス、コピーされたソースを継承することができます。新バージョンでは、仮想メソッドIsController方法が変更になることができます。

CONSTRAINT-更新:

IApplicationModelConventionは、インターフェイスを実装し、徐々にすべてのレベルで制約を変更します。実際には、記載ASPNETコアを使用します。

情報が処理されます。

最後に、URLルーティングが作成:API /ドメイン名/コントローラ名/メソッド名。

コントローラは、名前の内部構成方法を提供することができます。現在の侵入コードを考慮していません。

だから私のコードでは、URLの名前を設定するには、一定のコントローラ、コンフィギュレーションの名前に基づいて、静的プロパティやフィールド、アクセス制御値を見つけるために、それぞれ、コンフィギュレーションを提供します。

同様に、バージョン情報、あなたのドメインが、このようなものです。

簡単な紹介はそれをすべて失います。

オファーのアドバイス

あなたはこのソリューションをフォローしたい場合は、迅速な展開のためのインタフェースを実装するビジネスクラスは、その後、少し助言を与えます。

各インタフェースコントローラ名が一致するようにコントローラ上の名前、一つの方法は、例えば、トラフィッククラス名=実装するインターフェース名+「ビリルビンを」遠位容易にコールを変更するフォーマットを硬化させます。フロントエンドが要求されたパスを達成するためにフォーマットします。静的変数は、設定するために、インタフェース定数で添加することができるように現実に沿ってバックエンド。

あなたはクラスのURLインターフェースの価値を実現するために、フロントエンド反射形式の設定を取得することができます。最後に、ビジネスに直接現在のインターフェイスを使用していますが、すべてのビジネス・インタフェースに転用APIインターフェイスを継承し、上記のこの特別なインタフェースの機能を追加しないでください、定数、静的変数。これは、侵入するためのコードなしに達成することができます。仕事のこの部分は私のコードでは、自分自身の使用を定義するには、ユーザーが必要とされていません。ABPと原作者がコードであるが、それは特性やクラスを持っている必要があり、定義されているが、私はしませんでした。彼らは機能を追加する必要があるか、継承がコントローラクラスや名前、ドメインを決定するためにあるのはこのためです。

それについて、あなたの時間を取ります。

これは、説明の少し付属しています:

  netcore3いくつかの変更、削除、いくつかのコンポーネントが行う第三者が存在し、そこにあるので、対応する変更があります。これは、Microsoftが独自の定義を使用して、JSON形式を必要とします。System.Text.Json。代わりに、元のサードパーティ製のコンポーネントの。

だから、闊歩は、最新プレビュー版、低いバージョンのエラーを使用する必要があります。

私はNSwagの例を使用します。NSwag.AspNetCoreパッケージを使用してください。

最後に、私は、ライブラリパッケージの使用について話します

スタートアップ、

 services.AddWebApiAssembly(NULL); //アセンブリを追加

services.AddWebApiDirectory(NULL); //アセンブリのディレクトリを追加

アセンブリを追加し、コントローラは一般的に、包装の内側に、やり方を剥離すると述べました。

  services.AddDynamicWebApi(新しいDynamicWebApiOptions(){ControllerFeature =(P)=> {
                IF(P.GetInterface(typeof演算(ICall).NAME)== NULL)
                {
                    falseを返す;
                }
                trueを返します;
            }})。

全体のプロセスをカプセル化する動的な処理コンポーネントライブラリを追加し、それミドルウェアこと。ControllerFeature内部には、コントローラのデリゲートを決定することです。

 

 

 

          

 

おすすめ

転載: www.cnblogs.com/jinyu20180311/p/11228012.html