Actualmente estoy trabajando en la implementación de una API REST. Tengo un modelo de recursos con una gran cantidad de relaciones entre los recursos individuales.Uso de verbos LINK y UNLINK HTTP en una API REST
Mi pregunta es: ¿cómo se vinculan dos recursos existentes entre sí (establecer una relación) de manera RESTful?
Una solución que encontré fue el uso de los verbos LINK y UNLINK HTTP. El consumidor API podría vincular dos recursos usando LINK y siguiendo URI:/resource1 /: id1/resource2 /: id2.
El problema con esta solución es la falta de compatibilidad con los verbos LINK y UNLINK. Ni http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html ni http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol mencionan los verbos, y parecen ser en gran parte "olvidados". Sin embargo, el RFC 2068 original indica que existen.
Me gusta mucho esta solución. Sin embargo, me temo que muchos consumidores/clientes API no podrán tratar con la solución debido a la falta de soporte para LINK/UNLINK. ¿Es esta una solución aceptable o hay soluciones mejores y/o más elegantes para vincular recursos existentes en una API RESTful?
Gracias
¿Por qué no crear un recurso de enlace que vincule los dos recursos? –
Esa es otra solución que estaba considerando (se trata más o menos en esta [ASUNTA] [http://stackoverflow.com/questions/6324547/how-to-handle-many-to- many-relationships-in-a- restful] -api). Sin embargo, el problema es que para cada tipo de relación, debe definir un nuevo recurso (tipo).Esto complica en exceso el modelo de recursos y no es particularmente pragmático (ya que su consumidor de API debe conocer muchos más tipos de recursos). LINK/UNLINK no lo complica demasiado: establecer una relación es muy predecible y, por lo tanto, más fácil de usar. Sin embargo, si LINK/UNLINK apenas son compatibles ... –