Deno+Appwrite

안녕하세요!
Appwrites Deno SDK를 사용하여 Appwrite 함수를 작성하는 방법을 설명합니다.

건립


deno의 cli 버전을 설치했을 것입니다.
우리 공부를 시작합시다!

모듈 가져오기 및 함수 API 설정

  • Appwrite는 deno의 sdk를 denoland에 발표합니다.소프트웨어 패키지의 URL을 사용하여 쉽게 가져올 수 있습니다.
  • import * as sdk from "https://deno.land/x/appwrite/mod.ts";
    
  • Appwrite 클라이언트 만들기
  • const client = new sdk.Client()
  • apiEndpoint,apiKey 및 프로젝트 ID
  • 설정
    다음에 우리는 상술한 데이터를 필요로 하여 이를 클라이언트에 설정할 것이다
    client.setProject(projectId)
          .setEndpoint(endPoint)
          .setKey(apiKey
    
    
  • 함수 클래스를 만드는 실례
  • const functions = new sdk.Functions(client)
    
    이제 가져오기를 가져왔습니다. Appwrite의 함수 API와 상호작용을 시작합니다.

    함수 만들기



    함수를 만드는 것부터 시작합시다.현재 함수를 만드는 것은 매우 간단합니다.하나의 방법을 실행하고 새 함수에 모든 데이터를 전달하기만 하면 됩니다
    functions.create("foo" , ["*"] , "node-16.0").then(() => {
        console.log("Successfully created a new function")
    })
    .catch((error) => {
        console.log("Error while creating a new function.")
    
        console.log(error)
    })
    
    
    좋습니다. 코드를 한 줄 한 줄 이해합시다.functions.create("foo" , ["*"] , "node-16.0").then(() => { - 함수를 만드는 함수를 호출합니다.매개변수는 다음과 같습니다.
  • Name - 첫 번째 매개변수는 함수의 이름을 나타냅니다.너는 그것에게 자신이 선택한 이름을 지어줄 수 있다
  • 권한 - 두 번째 파라미터는 권한 목록을 포함하고 당신의 기능을 허용합니다."*"는 모든 기능을 나타냅니다.모든 권한의 목록을 찾을 수 있습니다 here
  • 런타임 - 세 번째 매개변수는 런타임에 사용됩니다.이것은 다음과 같은 코드 중 하나일 수 있다. 자바-16.0(java),python-3.9(python),ruby-3.0(ruby),php-8.0(php),node-16.0(Typescript/JavaScript)
  • 다음 줄은 컨트롤에 인쇄되어 함수가 성공적으로 만들어졌음을 알려 줍니다.
    현재 실행 deno run --allow-net main.js 을 통해 코드를 실행하고 appwrite 컨트롤러에서 Function tab 로 이동합니다.
    새 함수가 만들어지는 것을 볼 수 있을 거야!

    모든 함수 나열



    현재, 어느 시점에, 사용 가능한 모든 함수를 인쇄해야 합니다.다음과 같은 이점을 제공합니다.
    functions.list().then((res) => {
        let index = 0
    
        res.functions.forEach((_function) => {
            console.log(`${index}: ${_function.name}`)
    
            index += 1
        })
    })
    
    여기서 무슨 일이 있었죠?
    첫 번째 줄은 기본적으로 데이터베이스에 등록된 모든 함수를 얻었다.다음에 우리는 모든 함수를 교체할 것이다.모든 함수 대상은 보기에 비슷하다this.
    다음에, 우리는 단지 모든 함수의 이름을 인쇄할 뿐이다.
    다음 명령을 사용하여 파일을 실행합니다. deno run --allow-net main.js이렇게 하면 다음과 같은 출력이 발생합니다.
    0: foo
    

    함수 가져오기



    함수의 id를 사용하여 함수에 대한 자세한 정보를 얻을 수 있습니다.
    다음은 네가 할 수 있는 것이다.
    functions.get("6172d8bc57f89").then((res) => {
        console.log(`Fetching details for function id ${res.$id}`)
        console.log(`Name - ${res.name}`)
        console.log(`Created at - ${res.dateCreated}`)
        console.log(`Status - ${res.status}`)
        console.log(`Runtime - ${res.runtime}`)
    })
    
    따라서, 첫 번째 줄에서, 우리는 id를 통해 함수를 가져옵니다. 이것은 [이] 키 값이 맞는 대상을 되돌려줍니다.그리고 우리는 일부 속성을 컨트롤러에 인쇄하기만 하면 된다.출력은 다음과 같습니다.
    Fetching details for function id 6172d8bc57f89
    Name - foo
    Created at - 1634916540
    Status - disabled
    Runtime - node-16.0
    

    업데이트 기능



    지금 당신은 함수를 바꾸고 싶은 곳에 갇혀 있습니까?간단해!Appwrite는 함수의 id, 이름, 런타임 등을 변경할 수 있는 함수를 제공합니다. 다음 절차는 다음과 같습니다.
    const newName = "Bar"
    
    functions.update("6172d8bc57f89", newName, ["*"]).then(() => {
        console.log("Successfully renamed the function!")
    }).catch((err) => {
        console.log(err)
    })
    
    우선, 우리는 함수의 새로운 이름으로 변수를 초기화합니다.
    다음에 우리는 함수를 실행하고 함수를 업데이트합니다.매개변수는 다음과 같습니다.
  • ID - 변경하려는 함수의 ID
  • 이름 - 이 함수의 새 이름
  • 권한 - 이 기능의 새 권한
  • Rest-Rest 매개 변수는 필요하지 않습니다. 이 매개 변수를 읽을 수 있습니다here.
  • 함수 삭제



    함수 하나가 지겨워서 영원히 삭제하고 싶어요. 그래요, 간단해요!
    functions.delete("6172d8bc57f89").then(() => {
        console.log("Successfully deleted")
    })
    
    응, 여기는 설명할 게 없어.함수 이름과 매개 변수가 그것을 설명합니다.함수는 데이터베이스에서 이 함수를 삭제합니다.매개 변수는 함수의 id입니다.
    기능

    태그 만들기


    이제 태그를 만들려면 다음 코드를 사용합니다.
    functions.createTag("6172e57d60cc5", "foo", "somepath.tar.gz").then(() => {
        console.log("Successfully created a new tag")
    })
    
    현재, 첫 번째 매개 변수는 함수 (목표) 의 id를 받아들인다.두 번째 파라미터는 코드 확장 명령의 이름을 사용합니다.마지막으로 코드를 압축하는 경로입니다.

    태그 id 업데이트


    사용자 정의 태그 id를 설정하고 사용할 수 있습니다.
    functions.updateTag("6172e57d60cc5", "foo-tag").then(() => {
        console.log("Succesfully changed the tag!")
    })
    
    업데이트 태그 함수라고 합니다.이것은 두 개의 인자를 받아들인다. 첫 번째는 함수 id이고, 마지막 하나는 표시된 새 이름이다.

    목록 태그


    함수와 마찬가지로, 우리는 모든 탭을 인쇄해야 할 수도 있습니다.다음은 네가 할 수 있는 것이다.
    functions.listTags("6172e57d60cc5").then((res) => {
        let index = 0
    
        for (const tag of res.tags) {
            console.log(`${index}: ${tag.$id}`)
    
            index += 1
        }
    })
    
    따라서 함수에서 사용할 수 있는 모든 태그를 가져오고 있습니다.그리고 모든 탭의 id를 출력합니다.

    태그 데이터 가져오기


    현재, 우리는 어떻게 표시를 만들고, 표시를 열거하는지 보았습니다. 현재 어떻게 하나의 표시를 얻습니까?
    다음은 네가 할 수 있는 것이다.
    functions.getTag("6172e57d60cc5", "foo-tag").then((res) => {
        console.log("Tag id is", res.$id)
    })
    
    첫 번째 파라미터는 함수 id이고, 두 번째 파라미터는 탭 id입니다. 그리고 간단한 컨트롤러 로그 기록만 하면 됩니다.

    태그 삭제


    너는 이 꼬리표에 싫증이 났니?삭제하는 방법은 다음과 같습니다.
    functions.deleteTag("6172e57d60cc5", "foo-tag").then(() => {
        console.log("Successfully deleted the tag")
    })
    
    설명할 필요 없어요.

    창조 처결


    모든 번거로운 작업을 끝낸 후에, 응용 프로그램이 이 기능을 정확하게 실행하기를 희망합니다.
    다음은 실행을 작성하는 방법입니다.
    functions.createExecution("6172e57d60cc5").then((res) => {
        console.log("Created an excecution")
    })
    
    따라서 id가 있는 함수 실행을 만들고 id를 매개 변수로 전달합니다.

    열명으로 처결하다.


    현재 사용자 함수 실행 로그를 모두 가져오시겠습니까?예전과 같이 그것은 매우 간단하다.
    functions.listExecutions("6172e57d60cc5").then((res) => {
        let index = 0
    
        for (const tag of res.executions) {
            console.log(`${index}: ${tag.$id}`)
    
            index += 1
        }
    })
    
    listExecutions 함수는 함수 id를 매개 변수로 받아들입니다.이것은 실행 대상의 목록을 되돌려줍니다.
    Here는 반환값의 형식입니다.

    사형을 집행하다


    마지막으로 가장 중요하지 않은 것은 한 번 실행하는 것이다.다음은 네가 할 수 있는 것이다.
    functions.getExecution("6172e57d60cc5", "5e5ea5c16897e").then((res) => {
        // Play with the execution object
    })
    
    따라서 함수 getExecution을 실행합니다. 함수 id를 첫 번째 인자로 하고, 함수 id를 두 번째 인자로 합니다.그것은 여러 개의 다른 속성을 가진 실행 대상을 되돌려줍니다. 모든 이 속성은 이 실행과 관련이 있습니다

    결론


    이 글을 읽어 주셔서 감사합니다.denosdk에서 함수api를 어떻게 사용하는지 알고 싶습니다.

    Github 저장소


    코드를 가져올 수 있습니다here.
    내 github 계정-https://github.com/AsianCat54x

    좋은 웹페이지 즐겨찾기