경로 타입은(는) 무엇을 하나요?
새로운 타입을 정의할 때는 이 지침을 적용하세요. 명시적으로 요청된 경우에만 기존 코드를 변경하고, 수정은 최소화하고 비례하게 유지하세요. 이 규칙을 진행 중인 마이그레이션의 목표 상태로 취급하십시오. 준수가 어려울 경우 사용자에게 어떻게 진행할지 물어보세요.
- 앱-서버 프로토콜 타입에서는 URI 마이그레이션 중 이전 버전과의 호환성을 위해
LegacyAppPathString을 사용합니다. 프로토콜 경계에서 이를PathUri로 변환하고 내부적으로PathUri를 사용합니다. 일부 설정 값과 같은 호스트-로컬 로직의 경우 대신AbsolutePathBuf또는PathBuf를 사용합니다. - exec-서버 프로토콜 타입에서는
PathUri를 사용합니다. 내부적으로는 적절히PathUri또는AbsolutePathBuf를 사용합니다. - 두 서버가 공유하는 종속성에서는
PathUri또는 사용 사례를 분리하는 별도의 API를 사용합니다. - 모델이 생성할 것으로 예상되는 도구 호출 인수는 일반
String으로 역직렬화하고 기능별 경로 처리 코드를 사용해야 합니다.
마이그레이션 요구 사항
코드를 위 지침에 맞게 마이그레이션하는 동안 다음 요구 사항을 염두에 두십시오:
- 기존 앱-서버 클라이언트는 레거시 네이티브 경로 문자열을 계속 보내고 받습니다.
- 앱-서버는 외부 플랫폼 경로 URI를 유지하고 조작할 수 있습니다.
- exec-서버 API는 file:// URI를 사용합니다.
- 로컬 전용 작업은 모델에 표시되는 텍스트를 변경해서는 안 됩니다.
- 모델 도구 인수는 모든 OS에 대한 원시 상대 경로나 절대 경로를 포함할 수 있습니다.
- 경로 추론은 관련 환경이 온라인 상태가 되기 전에 작동해야 합니다.
- URI는 실행기의 경로 규칙이나 운영체제를 명시적으로 인코딩할 수 없습니다.
- 사용자가 환경의 OS/경로 규칙을 명시적으로 구성해서는 안 됩니다.
- URI는 아직 롤아웃, 데이터베이스 또는 다른 지속적 저장소에 저장되지 않아야 합니다.
- 경로 변환 오류: 보안 관련 경로는 실패-폐쇄, UI/진단은 실패-개방 처리합니다.
- 로컬 헬퍼보다
PathUri나LegacyAppPathString에 대한 작고 집중된 메서드를 선호합니다. - 진단에서
PathUri값을 URI로 표현합니다.
경로와 URI 간 변환이 실제 사용자에게 올바르게 동작하는 한 어느 정도 손실이 있어도 괜찮습니다.
URI로 마이그레이션할 때 새로운 중요한 실패 모드를 추가해서는 안 됩니다. 이전에는 무오류였던 일부 위치에 오류를 표시해야 할 필요가 있지만 최소한으로 유지해야 합니다.