다트로 글씨 쓰기!

환영합니다!본고는 Appwrite Dart SDK를 사용하여 Appwrite API(사용자, 데이터베이스, 저장, 함수, 계정)와 상호작용을 할 것이다

Appwrite 및 Dart SDK 설정


먼저 Appwrite 및 Dart를 설치한 후 이 자습서를 계속 학습해야 합니다.그들 모두의 메인 사이트는 좋은 설치 문서를 가지고 있다.
Appwrite에서 로컬 인스턴스를 설치하고 실행하려면 다음과 같이 하십시오.
https://appwrite.io/docs/installation
떨림(Dart SDK는 떨림 버전 1.19.0의 일부로 설치됨):
https://flutter.dev/docs/get-started/install
둘 다 설정되면 Appwrite 서버를 실행하고 자신의Dart 프로젝트를 만듭니다.
공공 규범 범위 내.Dart 프로젝트의 yaml 파일에서 Appwrite Dart SDK가 종속 항목인지 확인해야 합니다.
다음 명령이 없으면 명령을 실행합니다.
dart pub add dart_appwrite 
Pubspec.yaml 예:

이제 우리는 이미 이 문제를 해결했으니, 우리 행동을 시작합시다!

Appwrite Dart SDK 가져오기 및 클라이언트 만들기


1) pubspec에 Appwrite Dart SDK 의존성이 있는 경우yaml, 패키지를 가져올 수 있어야 합니다.
import 'package:dart_appwrite/dart_appwrite.dart';
2) Appwrite 클라이언트를 만듭니다.
Client client = Client();
3) 그런 다음 클라이언트의 엔드포인트, 프로젝트 ID 및 키를 설정해야 합니다.
  client
      .setEndpoint(endpoint) 
      .setProject(projectid) // Project ID
      .setKey(secret) // Your Appwrite secret key
      .setSelfSigned(status: true); //Don't use this in production
4) 이 정보는 Appwrite 콘솔에서 확인할 수 있습니다.아래의 예에서 정보를 찾을 수 있습니다.
프로젝트 ID 및 끝점:

API 키:

그런 다음 계속해서 다른 Appwrite API와 상호 작용합니다.

사용자


사용자 서비스에서 프로젝트 사용자를 관리할 수 있습니다.이 서비스를 사용하면 사용자의 정보, 현재 세션과 최신 활동 로그를 검색, 차단 및 볼 수 있습니다.사용자 서비스를 사용하여 사용자의 기본 설정과 개인 정보를 편집할 수도 있습니다.
Appwrite Dart SDK를 사용하여 사용자 API와 상호 작용하는 예를 살펴보겠습니다.
우선, 우리는 앞에서 매개 변수로 정의된 클라이언트를 전달함으로써 사용자 서비스를 만들어야 한다.
Users users = Users(client);
일단 사용자 서비스가 생기면, 우리는 사용자 API를 통해 우리의 Appwrite 백엔드와 계속 상호작용을 할 수 있다.

새 사용자 만들기


Dart SDK를 사용하여 새 사용자를 만드는 방법입니다.
Future response = users.create(
 email: "[email protected]",
 password: "example123",
 name: "example"
);
users.create(...) 함수에 수락된 매개변수는 다음과 같습니다.
전자 우편 - 첫 번째 파라미터는 사용자의 전자 우편입니다. 이것은 필수입니다.제공된 유형은 문자열이어야 합니다.
password - 두 번째 파라미터는 사용자의 비밀번호를 받아들입니다. 이것은 필수입니다.암호의 유형은 문자열이어야 합니다.
이름 - 세 번째 매개변수는 사용자 이름(최대 128자)입니다.제공된 유형은 문자열이어야 합니다.
이제 Appwrite 콘솔의 '개발 > 사용자' 에서 새 사용자의 생성을 볼 수 있습니다.

Create User 요청에 대한 응답을 받을 것이며 Appwrite에 요청할 때마다 응답을 받을 수 있습니다.다음 코드를 사용하여 응답 내용을 확인할 수 있습니다.
response
    .then((response) {
    print(response);
  }).catchError((error) {
    print(error.response);
  });
응답은 JSON 형식이며 다음은 사용자 요청을 작성하는 응답입니다.
{
    "$id": "617eb25e03167",
    "name": "example",
    "registration": 1635693866,
    "status": 0,
    "passwordUpdate": 1635693866,
    "email": "[email protected]",
    "emailVerification": false,
    "prefs": {}
}

사용자 나열


또한 현재 정의된 모든 사용자를 나열할 수도 있습니다.
Future response = users.list();
JSON 응답 예:
{
    "sum": 1,
    "users": [
        {
            "$id": "617eb25e03167",
            "name": "example",
            "registration": 1635693866,
            "status": 0,
            "passwordUpdate": 1635693866,
            "email": "[email protected]",
            "emailVerification": false,
            "prefs": {}
        }
    ]
}

사용자 삭제


사용자를 삭제하려면 사용자의 사용자 ID를 delete 함수의 매개 변수로 제공해야 합니다.
Future result = users.delete(userId:'617eb25e03167');
이 응답은 유효 부하가 없습니다. 따라서 변경 사항을 보거나 Appwrite 컨트롤러에서 볼 수 있도록 앞에서 언급한 기능을 사용하여 모든 사용자를 다시 표시해야 합니다.

보관부


스토리지 서비스를 통해 프로젝트 파일을 관리할 수 있습니다.저장 서비스를 사용하면 모든 프로젝트 파일을 업로드, 보기, 다운로드, 조회할 수 있습니다.
서비스의 모든 파일은 누가 그것을 보거나 편집할 수 있는지 관리하기 위해 읽기와 쓰기 권한을 부여받는다.
먼저 스토리지 서비스를 정의합니다.
Storage storage = Storage(client);

파일 만들기


프로젝트 폴더에 "test.jpg"이라는 파일이 있다면, 이 파일은 Appwrite 저장 서비스에 업로드됩니다.createFile 함수를 사용하여 파일을 업로드합니다.
final file = await MultipartFile.fromPath('file', './test.jpg', filename: 'test.jpg');

Future response = storage.createFile(
    file: file, //multipart file
    read: ['*'],
    write: ['*'],
  );
다음은 우리가 storage.createFile(...) 함수에 제공할 수 있는 매개 변수다.
파일 - Appwrite 서비스에 업로드할 파일의 바이너리 데이터입니다. 이것은 필수 인자입니다.
read-특정한 사용자, 팀, 또는 모든 사람 (어댑터 권한 "*"으로 표시) 을 포함하는 문자열 그룹으로 쓰기 권한을 부여합니다. 선택할 수 있습니다.기본적으로 현재 사용자에게만 읽기 권한이 부여됩니다.제공해야 할 유형은 수조입니다.
write-특정 사용자, 팀 또는 모든 사람(어댑터 권한'*'로 표시)을 포함하는 문자열 그룹으로 쓰기 권한을 부여할 수 있습니다. 이것은 선택할 수 있습니다.기본적으로 현재 사용자에게만 쓰기 권한이 부여됩니다.제공해야 할 유형은 수조입니다.
Appwrite에서 사용 권한에 대한 자세한 내용을 읽을 수 있습니다.
https://appwrite.io/docs/permissions
이제 Appwrite의 "개발 > 스토리지"섹션에서 이러한 변화를 확인할 수 있습니다.

파일 요청에 대한 JSON 응답 만들기 예:
{
    "$id": "617ec67928ccd",
    "$permissions": {
        "read": ["*"],
        "write": ["*"]
    },
    "name": "test.jpg",
    "dateCreated": 1635698297,
    "signature": "288da602ad6002d9720f52aa97b49d8c",
    "mimeType": "image/jpeg",
    "sizeOriginal": 84647
}

파일 나열


그리고 Appwrite 컨트롤러에서 보지 않고listFiles 기능을 사용하여 저장 서비스에서 파일을 표시할 수 있습니다.
Future response = storage.listFiles()
JSON 응답 예:
{
    "sum": 1,
    "files": [{
        "$id": "617ec67928ccd",
        "$permissions": {
            "read": ["*"],
            "write": ["*"]
        },
        "name": "test.jpg",
        "dateCreated": 1635698297,
        "signature": "288da602ad6002d9720f52aa97b49d8c",
        "mimeType": "image/jpeg",
        "sizeOriginal": 84647
    }]
}

파일 삭제


저장 서비스에서 파일을 삭제하려면 deleteFile 함수를 사용하여 파일 ID를 매개 변수로 제공합니다.
Future response = storage.deleteFile(fileId: '617ec67928ccd')
이 응답은 유효 부하가 없습니다. 따라서 변경 사항을 보거나 Appwrite 컨트롤러에서 볼 수 있도록 앞에서 언급한 기능을 사용하여 모든 사용자를 다시 표시해야 합니다.

기능:


Appwrite 함수를 사용하면 사용자 정의 코드를 실행하여 Appwrite 서버 기능을 확장하고 사용자 정의할 수 있습니다.Appwrite는 계정 생성, 사용자 로그인, 문서 업데이트 등 모든 Appwrite 시스템 이벤트에 응답하기 위해 사용자 정의 코드를 실행할 수 있습니다.CRON 계획에 따라 함수를 실행하거나, Appwrite 클라이언트나 서버 API를 사용하여 HTTP 단점에서 함수를 터치해서 수동으로 시작할 수 있습니다.
Appwrite 함수는 안전하고 격리된 Docker 컨테이너에서 실행됩니다.Appwrite는 Kotlin, Python, 코드 실행에 사용할 수 있는 다른 언어와 같은 다양한 프로그래밍 언어의 실행을 지원합니다.
우선, 우리는 앞에서 정의한 클라이언트를 사용하여 우리의 기능 서비스를 만들 것이다.
Functions functions = Functions(client);

함수 만들기


여기에서 테스트 function이라는 함수를 만들 것입니다. 이것은 우리의 사용자 정의 컴파일 코드입니다. 모든 읽기 권한으로 실행하기를 바랍니다.이 함수가 Python 3.9에서 실행될 때 실행되기를 바랍니다.
Future response = functions.create(
  name: '[test_function]',
  execute: [*],
  runtime: 'python-3.9',
);
functions.create(...)에 전달된 매개변수는 다음과 같습니다.
name - Appwrite 서비스에 업로드할 함수의 이름(최대 128자)입니다. 필수 매개 변수입니다.
execute - 특정 사용자, 팀 또는 모든 사람(어댑터 권한 "*"으로 표시됨)을 포함하는 문자열 그룹으로 실행 권한을 부여하는 데 필요합니다.기본적으로 사용자에게 읽기 권한이 부여되지 않습니다.제공해야 할 유형은 수조입니다.
런타임 - 함수의 런타임을 설정합니다.지원되는 런타임 목록은 다음과 같습니다. https://appwrite.io/docs/functions#supportedRuntimes.제공해야 할 유형은string입니다.
제공되는 추가 매개 변수: https://appwrite.io/docs/server/functions?sdk=dart-default#functionsCreate
우리는 지금 Appwrite의'develope>Functions'부분에서 우리의 새로운 함수를 볼 수 있을 것이다.

함수 요청에 대한 JSON 응답 만들기 예:
{
    "$id": "617ec96ceb93e",
    "$permissions": {
        "execute": ["*"]
    },
    "name": "[test_function]",
    "dateCreated": 1635699052,
    "dateUpdated": 1635699052,
    "status": "disabled",
    "runtime": "python-3.9",
    "tag": "",
    "vars": [],
    "events": [],
    "schedule": "",
    "scheduleNext": 0,
    "schedulePrevious": 0,
    "timeout": 15
}

나열 함수


Appwrite 컨트롤러에서 보지 않고functions 서비스에서 함수를 보여 줍니다.
Future response = functions.list();
JSON 응답 예:
{
    "sum": 1,
    "functions": [{
        "$id": "617ec96ceb93e",
        "$permissions": {
            "execute": ["*"]
        },
        "name": "[test_function]",
        "dateCreated": 1635699052,
        "dateUpdated": 1635699052,
        "status": "disabled",
        "runtime": "python-3.9",
        "tag": "",
        "vars": [],
        "events": [],
        "schedule": "",
        "scheduleNext": 0,
        "schedulePrevious": 0,
        "timeout": 15
    }]
}

함수 삭제


다음과 같이 Appwrite Dart SDK를 사용하여 만든 함수를 삭제할 수 있습니다.
Future result = functions.delete(functionId:'617ec96ceb93e');

추가 자원


이 문서에서는 Appwrite Dart SDK의 일부 기능에 대해 설명합니다.자세한 내용을 보려면 Appwrite 문서를 보십시오.
https://appwrite.io/docs
Appwrite 버그 및 새로운 기능을 해결하는 데 도움이 되려면 Appwrite Github를 확인하십시오.
https://github.com/appwrite/appwrite
내 Github 프로필: https://github.com/timothy22000

좋은 웹페이지 즐겨찾기