ドキュメント概要
ようこそ
Getting started
Welcome to the Sisk documentation!
Sisk is an open-source lightweight HTTP framework for .NET. You can use it to build a standalone web …
インストール
Sisk は NuGet、dotnet CLI、または他のオプションでインストールできます。開発者コンソールで次のコマンドを実行するだけで、Sisk 環境を簡単にセットアップできます。
Shell dotnet add package Sisk.HttpServer このコマンド …
ネイティブAOTのサポート
.NET Native AOTを使用すると、.NETランタイムがターゲットホストにインストールされていない場合でも、自己完結型のネイティブ.NETアプリケーションを公開できます。さらに、ネイティブAOTでは以下のような利点があります:
アプリケーションのサイズが大幅に小さくなる …
Sisk アプリケーションのデプロイ
Sisk アプリケーションのデプロイプロセスは、プロジェクトを本番環境に公開することから成ります。プロセス自体は比較的シンプルですが、デプロイ先インフラのセキュリティや安定性に致命的な影響を与える可能性のある詳細に注意する必要があります。
理想的には、すべてのテストを実施し、アプ …
SSL の使用
開発時に SSL を使用する必要がある場合があります。これは、ほとんどのウェブ開発シナリオのようにセキュリティが求められる環境で作業する場合です。Sisk は HttpListener の上に構築されていますが、HttpListener はネイティブの HTTPS をサポートせず …
Cadente
Cadente は Sisk 用の実験的なマネージド HTTP/1.1 リスナー実装です。デフォルトの System.Net.HttpListener の代替として機能し、特に非 Windows プラットフォームで、より高い制御性と柔軟性を提供します。
概要 # デフォルトでは …
Windows での名前空間予約の構成
注記
この構成はオプションであり、Windows で HttpListener エンジンを使用して「localhost」以外のホストで Sisk をリッスンさせたい場合にのみ必要です。
Sisk は HttpListener ネットワークインターフェイスと連携し、仮想ホストをシ …
変更履歴
Sisk に加えられたすべての変更は変更履歴に記録されています。すべての Sisk バージョンの変更履歴はこちらで確認できます。
1.6 から 1.7 への移行 # Sisk 1.7.0 では …
Frequently Asked Questions
Sisk に関するよくある質問。
Sisk はオープンソースですか? # 完全に。Sisk で使用されるすべてのソースコードは、GitHub で公開および頻繁に更新されています。
貢献は受け付けますか? # Sisk の哲学 と互換性がある限り、すべての貢献は大歓迎です!貢献はコ …
基礎
ルーティング
Router はサーバー構築の最初のステップです。URL とそのメソッドをサーバーが実行するアクションにマッピングするエンドポイントである Route オブジェクトを保持する役割を担います。各アクションはリクエストを受け取り、クライアントへレスポンスを返すことを担当します。
ルー …
リクエストハンドリング
リクエストハンドラ(ミドルウェアとも呼ばれます)は、ルーター上でリクエストが実行される前後に実行される関数です。ルート単位またはルーター単位で定義できます。
リクエストハンドラには 2 種類あります。
BeforeResponse: ルーターアクションを呼び出す前にリクエストハン …
リクエスト
Requests は HTTP リクエストメッセージを表す構造体です。 HttpRequest オブジェクトは、アプリケーション全体で HTTP メッセージを処理するための便利な機能を提供します。
HTTP リクエストは、メソッド、パス、バージョン、ヘッダー、ボディで構成されます …
Responses
Responses は HTTP リクエストに対する HTTP レスポンスのオブジェクトを表します。サーバーはリソース、ページ、ドキュメント、ファイル、またはその他のオブジェクトへの要求の結果として、クライアントに送信します。
HTTP レスポンスはステータス、ヘッダー、コンテン …
機能
ロギング
Sisk を構成して、アクセスログとエラーログを自動的に書き込むことができます。ログのローテーション、拡張子、書き込み頻度を定義することも可能です。
LogStream クラスは、非同期でログを書き込み、await 可能な書き込みキューに保持する方法を提供します …
サーバー送信イベント
Sisk は、Server Sent Events を使用したメッセージ送信を標準でサポートしています。使い捨ておよび永続的な接続を作成でき、実行時に接続を取得して使用することができます。
この機能には、ブラウザーが課すいくつかの制限があります。たとえば、テキストメッセージのみ送 …
Web ソケット
Sisk は Web ソケットもサポートしており、クライアントとのメッセージの受信および送信が可能です。
この機能はほとんどのブラウザーで問題なく動作しますが、Sisk ではまだ実験的な段階です。バグを見つけた場合は、GitHub で報告してください。
メッセージの受信 # …
捨てられる構文
HTTPサーバーは、OAuth認証などのアクションからのコールバック要求を待ち受けるために使用でき、要求を受け取った後には捨てられる。この機能は、バックグラウンドアクションが必要だが、HTTPアプリケーションを設定したくない場合に便利です。
以下の例は …
依存性の注入
リクエストの有効期間中に存在するメンバーとインスタンス(たとえば、データベース接続、認証済みユーザー、またはセッショントークン)を指定することは一般的です。可能な方法の1つは、HttpContext.RequestBagを使用することです。これは、リクエストの有効期間中に存在する …
コンテンツのストリーミング
Sisk では、クライアントとの間でコンテンツのストリーミングを読み書きすることができます。この機能は、リクエストの生存期間中にコンテンツのシリアル化とデシリアル化のメモリ負荷を削減するために役立ちます。
リクエストコンテンツストリーム # 小さなコンテンツは自動的に HTTP …
SiskでCORS(クロスオリジンリソース共有)を有効にする
Sisk には、サービスを公開する際に Cross-Origin Resource Sharing (CORS) の処理に役立つツールがあります。この機能は HTTP プロトコルの一部ではなく、W3C が定義した Web ブラウザ固有の機能です。このセキュリティ機構は、ウェブペー …
ファイルサーバー
Sisk は Sisk.Http.FileSystem 名前空間を提供し、静的ファイルの配信、ディレクトリ一覧、ファイル変換のためのツールが含まれています。この機能により、ローカルディレクトリからファイルを配信でき、Range リクエスト(音声/動画ストリーミング)やカスタムファ …
拡張機能
モデルコンテキストプロトコル
大規模言語モデル(LLM)を使用してエージェントモデルにコンテキストを提供するアプリケーションを、Sisk.ModelContextProtocol パッケージで構築することができます:
dotnet add package Sisk.ModelContextProtocol …
JSON-RPC 拡張
Sisk には JSON-RPC 2.0 API 用の実験的モジュールがあり、さらにシンプルなアプリケーションを作成できます。この拡張は JSON-RPC 2.0 のトランスポートインターフェースを厳密に実装し、HTTP GET、POST リクエストおよび Sisk の …
サービスプロバイダー
Service Providers は、ポータブルな構成ファイルを使用して Sisk アプリケーションをさまざまな環境へ移植する方法です。この機能により、サーバーのポートやパラメーター、その他のオプションを、環境ごとにアプリケーションコードを変更することなく変更できます。このモジ …
INI 設定プロバイダー
Sisk には JSON 以外の起動設定を取得する方法があります。実際、IConfigurationReader を実装したパイプラインであれば、PortableConfigurationBuilder.WithConfigurationPipeline と組み合わせて使用でき、 …
API ドキュメント
Sisk.Documenting 拡張機能を使用すると、Sisk アプリケーションの API ドキュメントを自動的に生成できます。コード構造と属性を利用して包括的なドキュメントサイトを作成し、Open API(Swagger)形式へのエクスポートをサポートします。
警告
This …
ベーシック認証(廃止)
注意
廃止されました。使用しないでください。 Sisk.BasicAuth パッケージはメンテナンスされておらず、NuGet でも非推奨となっており、代替パッケージはありません。BasicAuthenticateRequestHandler は標準的な HTTP クライアントが …
SSL プロキシ(廃止)
注意
廃止されました。使用しないでください。 Sisk.SslProxy パッケージはもはやメンテナンスされておらず、NuGet で非推奨となっています。代替パッケージはありません。現在の Cadente API に対してコンパイルできません。HTTPS を提供するには …
詳細
手動(高度)設定
手動セットアップは、サーバーの構成要素を自分で組み立てる必要がある場合に使用します。たとえば、1 つのプロセスが複数のホスト、ポート、ルーター、またはカスタムサーバー構成を公開しなければならない場合です。ほとんどのアプリケーションでは、ビルダー API の方が短く、優先すべきです …
リクエストライフサイクル
以下では、HTTP リクエストの例を通して、リクエストの全ライフサイクルについて説明します。
リクエストの受信: 各リクエストは、リクエスト自体とクライアントに配信されるレスポンスの間に HTTP コンテキストを作成します。このコンテキストは Sisk に組み込まれたリスナーから …
フォワーディングリゾルバ
フォワーディングリゾルバは、リクエスト、プロキシ、CDN、ロードバランサーを通じてクライアントを識別する情報をデコードするのに役立つヘルパーです。Sisk サービスがリバースプロキシまたはフォワードプロキシを介して実行される場合、クライアントの IP アドレス、ホスト、プロトコル …
HTTP サーバーハンドラ
Sisk バージョン 0.16 では、HttpServerHandler クラスを導入しました。このクラスは、Sisk の全体的な動作を拡張し、Http リクエスト、ルーター、コンテキストバッグなどの追加イベントハンドラを提供することを目的としています。
このクラスは、HTTP …
サーバーあたり複数のリスニングホスト
Sisk Framework は常にサーバーあたり複数のホストの使用をサポートしており、つまり単一の HTTP サーバーが複数のポートでリッスンでき、各ポートはそれぞれ独自のルーターとサービスを実行します。
このように、Sisk を使用すると単一の HTTP サーバー上で責務を分 …
HTTPサーバーエンジン
Sisk Frameworkは複数のパッケージに分割されており、主なパッケージ(Sisk.HttpServer)は基本的なHTTPサーバーを含んでいません。デフォルトでは、HttpListenerがSiskの主なエンジンとして使用され、低レベルのサーバーの役割を果たします。 …