Quiero poder definir funciones con parámetros y tipo de retorno para mi especificación de objeto JavaScript. Espero poder hacer esto usando JSONSchema. Pero, parece que no puedo averiguar cómo hacerlo.
Estoy tratando de hacer algo como lo siguiente:
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.com/product.schema.json", "title": "Product", "description": "A JavaScript object that gets a product from Acme's catalog", "type": "object", "properties": { "getProduct": { "description": "returns a product object when a product id is provided as a parameter", "type": "function", "parameters": ["id": uuid], "returnType": object } }, }¿Alguien sabe de algún proyecto o herramienta que me permita hacer esto? Triple gracias de antemano.
JSON Schema no tiene ninguna capacidad para describir funciones, debido a que JSON no puede expresar funciones. JSON Schema se define sobre el modelo de datos expresable en JSON.
Las versiones actuales de la especificación JSON Schema son bastante extensibles con la adición de vocabularios. aunque no sería consistentemente interoperable, un vocabulario para describir funciones podría ser una posibilidad.
Siempre puede definir funciones como propiedades de objetos JSON por sintaxis de valor clave. como esto:
const Product = { id: 50, getProduct: function(id){ return 'product '+id; } }Pero si desea serializar este JSON para intercambiarlo de alguna manera. tienes que anular la función de reemplazo JSON.stringfy como esta
JSON.stringify(Product, function(key, value){ if(typeof value === 'function') return value.toString(); else return value; });Y si desea agregar comentarios a su JSON, puede agregar alguna clave/valor como _comment:"Escriba su comentario aquí" a su objeto.