Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

객체 함수 작성 시작

온톨로지 객체를 매개변수로 받으면 함수가 해당 객체의 속성과 링크를 바로 사용할 수 있습니다. TSv1 또는 TSv2 저장소를 만든 뒤 유형 가져오기를 완료해야 합니다.

Airport와 Flight 가져오기

Resource Imports에서 Add를 선택하고 온톨로지를 고른 뒤 객체 유형과 두 유형 사이 링크를 선택합니다. 다음 Airport와 Flight는 설명용 이름이며 사용할 수 있는 자신의 유형으로 바꿔야 합니다.

인터페이스는 Add > Interfaces에서 선택합니다.

Confirm selection으로 확정하면 Code Assist가 다시 시작합니다. TSv1은 @foundry/ontology-api를 사용하며 비공개 온톨로지는 @foundry/ontology-api/<ontology-api-name>을 사용합니다. TSv2는 SDK를 생성하고 설치한 뒤 @ontology/sdk에서 유형을 가져와야 합니다.

공항 위치 문자열

Code 탭에서 Airport를 가져오고 객체 변수 뒤에 마침표를 입력하면 속성과 링크의 자동 완성을 확인할 수 있습니다.

가상의 Airport.city와 country가 String 속성이라고 가정합니다. 아래 함수는 두 값이 있으면 위치를 문자열로 반환하며 누락되면 사용자가 볼 수 있는 오류를 반환합니다.

TypeScript v1

import { Function, UserFacingError } from "@foundry/functions-api";
import { Airport } from "@foundry/ontology-api";

export class MyFunctions {
    @Function()
    public airportLocation(airport: Airport): string {
        if (airport.city === undefined || airport.country === undefined) {
            throw new UserFacingError("공항의 city와 country가 필요합니다.");
        }
        return `${airport.city}, ${airport.country}`;
    }
}

클래스를 functions-typescript/src/index.ts에서 내보냅니다.

TypeScript v2

typescript-functions/src/functions/airportLocation.ts의 기본 내보내기로 정의합니다. 객체 인스턴스는 Osdk.Instance로 감쌉니다.

import { Airport } from "@ontology/sdk";
import { Osdk } from "@osdk/client";
import { UserFacingError } from "@osdk/functions";

export default function airportLocation(airport: Osdk.Instance<Airport>): string {
    if (airport.city === undefined || airport.country === undefined) {
        throw new UserFacingError("공항의 city와 country가 필요합니다.");
    }
    return `${airport.city}, ${airport.country}`;
}

라이브 미리보기

Functions helper에서 Live Preview를 켜고 함수를 선택합니다. 객체 함수의 미리보기에는 객체 유형의 기반 데이터소스(Backing datasource)를 저장소에 가져와야 합니다. Run 옆 경고 아이콘을 선택합니다.

대화 상자에서 필요한 데이터소스를 가져옵니다.

객체를 선택하고 Run을 실행하면 반환 값을 확인할 수 있습니다.

라이브 미리보기의 객체 접근은 저장소가 기반 데이터소스에 가진 권한을 기준으로 합니다. 알림을 만드는 함수는 미리보기에서 수신자의 권한을 검사하지 않으므로 여기에서 성공하더라도 다른 앱의 액션 실행에서는 실패할 수 있습니다. 함수 권한과 액션 알림 권한을 구분해서 확인합니다.

게시와 사용

코드를 커밋하고 Branches에서 새 태그를 게시합니다. 게시한 함수는 Functions helper에서 해당 버전을 선택해 실행할 수 있습니다.

객체와 링크, 집합 필터와 집계로 확장하거나 다른 앱에서 함수 사용에 따라 연결합니다.