Payload CMS y Astro
PayloadCMS es un sistema de gestión de contenido headless de código abierto que se puede utilizar para proporcionar contenido para tu proyecto Astro.
Integración con Astro
Sección titulada Integración con AstroPrerequisitos
Sección titulada Prerequisitos- Un proyecto de Astro - Si aún no tienes un proyecto de Astro, nuestra guía de instalación te pondrá en marcha en poco tiempo.
- Una base de datos de MongoDB - PayloadCMS te pedirá una cadena de conexión de MongoDB al crear un nuevo proyecto. Puede configurar uno localmente o usar MongoDBAtlas para alojar una base de datos en la web de forma gratuita.
- Una API REST de PayloadCMS - Crea un proyecto de PayloadCMS y conéctalo a tu base de datos MongoDB durante la configuración.
Durante la instalación de PayloadCMS, se te preguntará si deseas utilizar una plantilla.
Escoger cualquiera de las plantillas disponibles en este paso (como ‘blog’) genera automáticamente colecciones adicionales para que las utilices. De lo contrario, deberás crear manualmente tus colecciones de PayloadCMS.
Configurando Astro para tu colección de PayloadCMS
Sección titulada Configurando Astro para tu colección de PayloadCMSTu proyecto de plantilla Payload contendrá un archivo llamado Posts.ts en src/collections/
. Si no escogiste una plantilla durante la instalación que creara una colección de contenido para ti, puedes crear una nueva colección de PayloadCMS agregando este archivo de configuración manualmente. El siguiente ejemplo muestra este archivo para una colección llamada posts
que requiere los campos title
, content
y slug
:
-
Importa y agrega tanto
Users
(disponible en todos los proyectos de PayloadCMS) como cualquier otra colección (por ejemplo,Posts
) a las colecciones disponibles en el archivopayload.config.ts
.Esto hará que aparezca una nueva colección llamada “Posts” en tu panel de control de PayloadCMS junto a la colección “Users”.
-
Ingresa a la colección “Posts” y crea una nueva publicación. Después de guardarla, notarás que la URL de la API aparece en la esquina inferior derecha.
-
Con el servidor de desarrollo en ejecución, abre
http://localhost:4321/api/posts
en tu navegador. Deberías ver un archivo JSON que contiene la publicación que has creado como un objeto.
Por defecto, tanto Astro como PayloadCMS utilizarán el puerto 4321. Es posible que desees cambiar el puerto de PayloadCMS en el archivo src/server.ts
. No olvides actualizar el serverURL
en src/payload.config.ts
también.
Obteniendo los datos
Sección titulada Obteniendo los datosObtén los datos de PayloadCMS a través de la URL única de la API REST de tu sitio y la ruta de tu contenido. (Por defecto, PayloadCMS montará todas las rutas a través de /api
.) Luego, puedes renderizar las propiedades de tus datos utilizando la directiva set:html=""
de Astro.
Juntos con tu publicación, PayloadCMS devolverá algunos metadatos de nivel superior. Los documentos reales están anidados dentro del arreglo docs
.
Por ejemplo, para mostrar una lista de títulos de publicaciones y su contenido:
Construyendo un blog con PayloadCMS y Astro
Sección titulada Construyendo un blog con PayloadCMS y AstroCrea una página índice de blog src/pages/index.astro
para listar cada una de tus publicaciones con un enlace a su propia página.
La búsqueda a través de la API devuelve un arreglo de objetos (publicaciones) que incluyen, entre otros, las siguientes propiedades:
title
content
slug
Usando la API de PayloadCMS para generar páginas
Sección titulada Usando la API de PayloadCMS para generar páginasCrea una página src/pages/posts/[slug].astro
para generar dinámicamente una página para cada publicación.
Publicando tu sitio
Sección titulada Publicando tu sitioPara desplegar tu sitio visita nuestra guía de despliegue y sigue las instrucciones para tu proveedor de alojamiento preferido.
Recursos de la comunidad
Sección titulada Recursos de la comunidad- Prueba esta Plantilla de Payload CMS y Astro.
- Echa un vistazo a Astroad para un fácil desarrollo y despliegue en VPS con Docker.