問題タブ [tapir]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - ZIO 1.0.3 は環境の動作方法を変更し、現在 http4s Blaze は実行されません
私は初めて ZIO を使用しており、https://github.com/guizmaii/scala-tapir-http4s-zio/blob/master/src/main/scala/example/HttpApp.scalaのボイラープレート スタブから始めました。 ZIO バージョン 1.0.0-RC17 を使用して、Tapir を含む http4s Blaze サーバーをセットアップして実行します。それはうまくいきましたが、後でバージョン 1.0.3 に更新して最新バージョンを使用しようとしましたが、そのバージョンはこのスタブのコードと互換性がありません。具体的には:
これはサーバーを定義するコードです (いくつかの無関係なルーティング行はオリジナルから切り取られています):
これは run() メソッドの本体です。このコードを実行しても、アプリがコード 0 で終了することはありません。予想どおり、Blaze サーバーが終了をブロックするためです。問題は次のスニペットです。
Has[A] が導入されたため、これは 1.0.3 では機能しません。コンパイラは、最終クラス Has から継承できないため、新しいクロックを呼び出すことができないと不平を言うようになりました。
これを置き換えることでこれを改善しようとしました
終了コードの int を ExitCode オブジェクトに置き換えると、コードはコンパイルされますが、この後、Blaze サーバーはアプリの初期化や終了の防止を行っていないようです。終了コード0で終了しました。
明らかに何かが欠けています。古い環境システムから Has[A] に基づく新しいシステムへの移行に関する情報は見たことがありません。Blaze サーバーが再び実行されるように、このボイラープレートを修正するにはどうすればよいですか?
scala - タイプ Alias を持つクラスからスキーマを暗黙的に取得する
現在、sttp バージョン 3.3.14とタピアバージョン 0.18.0-M15を使用していますが、特定のケース クラスのスキーマに問題があります。具体的には、型エイリアスを含むケース クラスです。
以下は、Either の単純なカスタム コーデックです。
次のコードは問題なく動作します。
しかし、このテスト ケースは失敗します。唯一の違いは、Either エイリアスであることに注意してください。
ここで何が間違っているのか、またはこれを解決する方法について何か考えはありますか?
ありがとう!