API が次のように使用されるライブラリを作成しようとしています。
WebService *service = new WebService( username, password );
User *user = service->getAuthenticatedUser();
UserAssets *assets = user->assets();
// And so on
認証されたユーザーもそのアセットも、WebServer
インスタンスの作成時にダウンロードされることはなく、明示的に要求された場合にのみ取得されます。
Qt を使用する前にネットワークからデータを取得する必要があるときはいつでも、finished()
信号をQNetworkReply
適切なスロットに接続し、そのスロットを使用して返されたデータを処理するという標準的なパターンに従いました。
ここでの問題は、パターンが目的のユースケースに対応していないように見えることです。ライブラリのユーザー (他の開発者) が 1 行を使用して、必要なデータを要求および受信できるようにしたいと考えていますが、「Qt の方法」は、少なくとも私の観点からは、開始する必要があるようです。ある行でリクエストを送信し、信号を別のスロットに接続してデータを取得しますが、これは私が望んでいる経験ではありません。
私は一般的にもQtでもネットワークプログラミングは初めてですが、Pythonで記述されたライブラリを使用し、まったく同じサービスと通信してこれを実現できるため、可能だと思われます。
単一の関数呼び出しで Qt を使用して HTTP 要求のライフサイクル全体を実行することは可能ですか?