¿Cuál es la forma más sencilla de devolver diferentes tipos de contenido según la extensión en la URL?
-
08-07-2019 - |
Pregunta
Me gustaría poder cambiar la extensión de una url y recibir el modelo en un formato diferente.
p. si
/products/list
devuelve una página html que contiene una lista de productos, luego
/products/list.json
los devolvería en una lista json.
Nota : Me gusta la simplicidad de ASP.NET MVC REST SDK , solo requiere aproximadamente 5 líneas de código para conectarlo, pero el formato se especifica como un parámetro de cadena de consulta, es decir, < code> / products / list? format = json que no es lo que quiero, podría modificar este código si no hay otras opciones, ¡pero no quiero reinventar la rueda!
Solución
Escribí una publicación de blog que muestra un posible ejemplo. Es un poco complicado, pero podría funcionar para sus necesidades.
http: // haacked .com / archive / 2009/01/06 / manejo-formatos-basados-en-url-extension.aspx
Otros consejos
Debería poder usar rutas junto con el resto sdk
Si tiene la flexibilidad de dejar Apache o algo similar frente a su servicio, siempre puede usar mod_rewrite
para reescribir un http: //products/list.json
externo en http: // products / list? format = json
que su marco puede representar más fácilmente.
En lugar de " list.json " ;, puede elegir " list / json " y usa una ruta como
{controlador} / {action} / {id}
Entonces se llamaría ProductController.List, con un parámetro ID de "json". La acción .List () luego decidiría si se devuelve o no una vista HTML o contenido JSON.