새 엔티티 유형을 만드는 방법
새로운 엔터티를 생성해야 하는 경우는 언제인가요?
먼저, 기존 엔터티가 필요한 사용 사례를 해결할 수 있는지 확인하여 불필요하게 복잡한 솔루션을 만들지 않도록 하세요. https://github.com/decentraland/common-schemas/blob/main/src/platform/entity.ts#L13 에 정의된 기존 엔터티 유형 중 어느 것도 요구 사항을 충족하지 못한다면, 새로운 엔터티 유형을 생성해야 할 수 있습니다.
첫 번째 답변:
새 엔터티는 NFT 컬렉션인가요?
소유권은 어떻게 검증되나요?
크기는 어느 정도인가요?
생성될 엔터티의 수는 얼마인가요?
단계
먼저 https://github.com/decentraland/adr 에 ADR을 생성하여 스키마와 새 엔터티의 검증을 시작할 날짜를 정의하세요.
리포지토리
@dcl/schemas
enum에 새 엔터티 유형을 추가하세요: https://github.com/decentraland/common-schemas/blob/main/src/platform/entity.ts#L19
https://github.com/decentraland/common-schemas/tree/main/src/platform 에 폴더와 파일을 생성하여 타입과 JSON 스키마를 만들어 주세요. 예: https://github.com/decentraland/common-schemas/blob/main/src/platform/profile/profile.ts#L20
@dcl/content-validator
https://github.com/decentraland/content-validator/blob/main/src/validations/timestamps.ts 에서 해당 ADR의 날짜를 고려하여 ADR에 정의된 검증을 구현하세요. 예: https://github.com/decentraland/content-validator/blob/main/src/validations/items/emotes.ts#L8
https://github.com/decentraland/content-validator/tree/main/src/validations/access-checker 에서 새 엔터티 유형의 소유권을 확인하는 코드를 추가하세요.
새 유형에 대한 validationForType을 구현하세요. 예: https://github.com/decentraland/content-validator/blob/main/src/validations/profile.ts#L112
여기에서는 https://github.com/decentraland/content-validator/blob/main/src/validations/ADR51.ts 에서 엔터티별 최대 크기를 정의해야 합니다.
@dcl/urn-resolver
새 엔터티가 컬렉션에 해당한다면, 추가할 것은 없습니다.
그렇지 않다면, 새 엔터티에 해당하는 새로운 URN을 생성하고 https://github.com/decentraland/urn-resolver 에 정의한 뒤 https://github.com/decentraland/urn-resolver/blob/main/src/resolvers.ts#L23 에 리졸버를 추가하세요.
Catalyst: Content Server
데이터베이스 변경은 필요하지 않습니다.
위에서 상세히 언급된 수정된 모든 라이브러리를 업데이트하세요.
Catalyst: Lambdas Server
위에서 상세히 언급된 수정된 모든 라이브러리를 업데이트하세요.
프로필 정리(sanitization)를 업데이트해야 하는지 확인하세요 (
/lambdas/profiles엔드포인트)erc 컬렉션 엔드포인트를 업데이트해야 하는지 확인하세요 (
/lambdas/collections엔드포인트)해당 엔터티를 보여주는 엔드포인트를 생성하세요. 예:
/lambdas/wearables-by-owner
마지막 업데이트