Appwrite Dart SDK 2.0 の発表
7721 ワード
アプリライターの皆さん👋 応答モデルをサポートする Dart SDK のバージョン 2.0 を発表できることを非常に嬉しく思います. 🥳 10 月に、Flutter SDK でレスポンス モデルのサポートを開始し、pub.dev で利用可能な Dart SDK に同じ機能を拡張しました.
このリリースでは、Dart SDK の各サービスとメソッドは単純な JSON ではなく構造化された応答オブジェクトを返すため、各メソッドが返すものと応答に含まれるプロパティを正確に知ることができます.また、IDE での自動提案も改善されます.これにより、JSON オブジェクトの存在しないプロパティにアクセスしようとしたときに発生する可能性のあるバグを防ぐことができます.最後に、これは、独自の応答オブジェクトを作成する必要がなくなることを意味します!
Appwrite Dart SDK を初めて使用する場合、Appwrite Flutter SDK とは異なり、この SDK は、Dart サーバー側コードから直接 Appwrite と統合するか、専用の Dart ランタイム環境を使用して Appwrite の Cloud Functions と統合するように設計されています.権限が昇格された API キーまたは認証用の JWT を使用し、管理者として Appwrite プロジェクトを管理できるようにします.
それでは、プロジェクトでこの SDK を使用する方法と、その外観について詳しく見ていきましょう.
最初に、Dart プロジェクトの
この依存関係を追加し、
たとえば、
以前は、SDK からのすべての呼び出しで、json データを含む
これの問題は、JSON 応答で使用できるキーとその型が正確にわからないことです.自動補完や IDE からの提案もありません.ただし、今回の更新により、同じコードを次のように変更できます.
注: データベース ドキュメント
例えば:
完全な例については、Playground For Dart をご覧ください.
問題や質問がある場合は、our discord までお気軽にお問い合わせください.
次のリソースを使用して、詳細を確認し、ヘルプを得ることができます
🚀 Getting Started Tutorial
🚀 Appwrite Github
📜 Appwrite Docs
💬 Discord Community
このリリースでは、Dart SDK の各サービスとメソッドは単純な JSON ではなく構造化された応答オブジェクトを返すため、各メソッドが返すものと応答に含まれるプロパティを正確に知ることができます.また、IDE での自動提案も改善されます.これにより、JSON オブジェクトの存在しないプロパティにアクセスしようとしたときに発生する可能性のあるバグを防ぐことができます.最後に、これは、独自の応答オブジェクトを作成する必要がなくなることを意味します!
🏁 始めましょう!
Appwrite Dart SDK を初めて使用する場合、Appwrite Flutter SDK とは異なり、この SDK は、Dart サーバー側コードから直接 Appwrite と統合するか、専用の Dart ランタイム環境を使用して Appwrite の Cloud Functions と統合するように設計されています.権限が昇格された API キーまたは認証用の JWT を使用し、管理者として Appwrite プロジェクトを管理できるようにします.
それでは、プロジェクトでこの SDK を使用する方法と、その外観について詳しく見ていきましょう.
最初に、Dart プロジェクトの
pubspec.yaml
に Appwrite の Dart SDK 依存関係を追加する必要があります.次の依存関係を追加します.dependencies:
dart_appwrite: 2.0.0
この依存関係を追加し、
dart pub get
を実行して更新された依存関係を取得すると、アプリケーションで使用できるようになります.Note that this will result in a breaking change, as every call from Appwrite's Dart SDK to any service previously returned a
Response
object withdata
as JSON object received from server. However with this release, every endpoint will return structured response objects instead.
たとえば、
database.createCollection()
は Collection
オブジェクトを返し、database.listCollections()
は CollectionList
オブジェクトを返します.他のすべてのサービスは、応答で同様のオブジェクトを返します. API 呼び出し中にエラーが発生した場合、SDK は以前と同様に AppwriteException
オブジェクトをスローします. GitHub repository にアクセスすると、各サービス/メソッドが返す内容の詳細を確認できます.以前は、SDK からのすべての呼び出しで、json データを含む
Response
オブジェクトが返されていました.ただし、この更新により、関連する応答オブジェクトが取得されます.そのため、独自のデータ クラスを作成して json を解析する必要がなくなります.各 SDK 呼び出しから何を期待するかを正確に知ることができます.たとえば、ID を使用してサーバーからコレクションを取得し、コレクションの名前を出力するコードが以前にあった場合、次のようになります.Future<void> getCollection() async {
try {
final Map<String, dynamic> res = await database.getCollection(collectionId: '063dasee342ase');
print(res.data['name']);
} on AppwriteException(catch e) {
print(e.message);
}
}
これの問題は、JSON 応答で使用できるキーとその型が正確にわからないことです.自動補完や IDE からの提案もありません.ただし、今回の更新により、同じコードを次のように変更できます.
import 'package:appwrite/models.dart';
Future<void> getCollection() async {
try {
final Collection collection = await database.getCollection(collectionId: '063dasee342ase');
print(collection.name);
} on AppwriteException(catch e) {
print(e.message);
}
}
Collection
クラスの定義を見ると、何が期待できるかが正確にわかります.また、コレクションのプロパティにアクセスしようとしているときに、IDE がオート コンプリートを提案できるようになり、独自のデータ クラスを作成する必要がなくなりました.それは時間の節約ではありませんか?注: データベース ドキュメント
database.getDocument
のエンドポイントは、データを独自のオブジェクトに変換するために使用できるメソッド Document
を持つ convertTo
オブジェクトを返します. document.list()
メソッドも同様に機能します.例えば:
database.getDocument(collectionId: "collectionId", documentId: "documentId").convertTo<Movie>(Movie.fromJson) //will return a Movie object
database.listDocuments(collectionId: "collectionId").convertTo<Movie>(Movie.fromJson) // will return a List<Movie> object
完全な例については、Playground For Dart をご覧ください.
問題や質問がある場合は、our discord までお気軽にお問い合わせください.
📚 もっと詳しく知る
次のリソースを使用して、詳細を確認し、ヘルプを得ることができます
Reference
この問題について(Appwrite Dart SDK 2.0 の発表), 我々は、より多くの情報をここで見つけました https://dev.to/appwrite/announcing-appwrite-dart-sdk-20-50a1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol