Tipos de Ruta
Aplica esta guía al definir nuevos tipos. Modifica código existente solo cuando se solicite explícitamente, y mantén las ediciones mínimas y proporcionales. Trata estas reglas como el estado objetivo de una migración en curso; si el cumplimiento es difícil, pregunta al usuario cómo proceder.
- En tipos de protocolo de
app-server, usaLegacyAppPathStringpara compatibilidad hacia atrás durante la migración de URI. En el límite del protocolo, conviértelo aPathUriy usaPathUriinternamente. Para lógica local del host, como algunos valores de configuración, usaAbsolutePathBufoPathBuf. - En tipos de protocolo de
exec-server, usaPathUri. Internamente, usaPathUrioAbsolutePathBufsegún corresponda. - En dependencias compartidas por ambos servidores, usa
PathUrio APIs separadas que desacoplen sus casos de uso. - Los argumentos de llamada a herramientas que se espera que genere el modelo deben deserializarse como
Strings normales con código de manejo de rutas específico de la función.
Requisitos de migración
Ten en cuenta estos requisitos al migrar código para que cumpla con las pautas anteriores:
- los clientes existentes de
app-serversiguen enviando y recibiendo cadenas de rutas nativas heredadas app-serverpuede conservar y manipular URIs de rutas de plataformas externas- las APIs de
exec-serverusan URIsfile:// - la operación solo local no debe cambiar el texto visible para el modelo
- los argumentos de herramienta del modelo pueden contener rutas relativas o absolutas sin procesar para cualquier SO
- el razonamiento sobre rutas debe funcionar antes de que el entorno relacionado esté en línea
- los URIs no pueden codificar explícitamente la convención de ruta o el sistema operativo del ejecutor
- los usuarios no deben configurar explícitamente el SO o la convención de ruta del entorno
- los URIs no deben almacenarse aún en despliegues, bases de datos u otro almacenamiento persistente
- errores de conversión de ruta: cierre seguro para rutas críticas de seguridad, apertura segura para IU/diagnóstico
- prefiere métodos pequeños y enfocados en
PathUrioLegacyAppPathStringsobre ayudantes locales - representa los valores de
PathUricomo URIs en diagnósticos
Está bien si la conversión entre rutas y URIs es algo imprecisa siempre que haga lo correcto para usuarios reales.
Migrar a URIs no debería agregar modos de fallo significativos. Necesitaremos mostrar errores en algunos lugares que antes eran infalibles, pero debe mantenerse al mínimo.