es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La extensión de la API del servidor para plugins de Strapi v4 no funciona.

Estoy intentando seguir la guía de Strapi v4.0.0 en https://docs.strapi.io/developer-docs/latest/developer-resources/plugin-api-reference/server.html#entry-file para extender el plugin de permisos de usuarios para agregar una ruta/controlador personalizado, pero hasta ahora no he tenido éxito. Agrego los archivos personalizados como se indica en la documentación, pero no hay cambios en la interfaz de usuario.

Logré hacer que esto funcionara para la API normal destacada en amarillo, pero no pude hacerlo para el plugin de permisos de usuarios.

En la versión anterior 3.6.8, esta funcionalidad estaba permitida a través de la carpeta de extensiones.

¿Me falta algo de la nueva guía? Incluso intenté copiar los archivos de node_modules> @strapi> plugin-users-permission y agregar una nueva ruta y método al archivo de controlador existente, pero todavía no refleja el cambio en la sección donde asignamos diferentes permisos de ruta a los roles. El plugin de permisos de usuario todavía muestra las rutas originales, sin cambios.

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Posible solución para extender el plugin “users-permission” en Strapi v4.0.0

    Por la captura de pantalla compartida, parece que el usuario ha creado con éxito una API personalizada en amarillo. Sin embargo, no pueden extender el plugin “users-permissions” para agregar una ruta/controlador personalizado como sugiere la guía de Strapi v4.0.0. Aquí hay algunos pasos posibles a seguir:

    1. Asegúrese de que los archivos personalizados se agreguen en la ubicación correcta:
      ./extensions/users-permissions/controllers/custom.js
      ./extensions/users-permissions/config/routes/custom.js
      

      El primer archivo contiene la lógica de controlador personalizada mientras que el segundo define la ruta personalizada.

    2. Verifique si la carpeta ./extensions está habilitada en ./config/plugins.js:

      module.exports = ({ env }) => ({
       // ...
       plugins: {
         // ...
         // Habilitar la carpeta de extensiones
         "extensions": {
           "enabled": true
         }
       }
      });
      

    3. Reinicie el servidor de Strapi con npm run develop o npm run start.
    4. Intente acceder al punto final de la API personalizada en `http://localhost:1337/custom`. Si funciona, agregue la ruta personalizada al plugin “users-permissions” de la siguiente manera:

      // ./extensions/users-permissions/config/routes/custom.js
      
      module.exports = [
       {
         method: "POST",
         path: "/custom",
         handler: "custom.create",
         policies: [],
         config: {},
       }
      ];
      

      Aquí, la ruta personalizada se define como una solicitud POST en /custom, que se asigna al método del controlador custom.create.

    5. Finalmente, asigne los permisos respectivos a diferentes roles para la ruta personalizada en `http://localhost:1337/admin/settings/users-permissions/roles`.

      Seleccione el rol adecuado y haga clic en la sección de “aplicación” para agregar un nuevo permiso. Desde el menú desplegable, seleccione la ruta personalizada (/custom) y asigne los permisos necesarios (por ejemplo, create para una solicitud POST).

      Guarde los cambios y pruebe el punto final de la API personalizada utilizando una herramienta adecuada (por ejemplo, Postman).

    Con suerte, estos pasos deberían permitir que el usuario extienda el plugin “users-permissions” con éxito en Strapi v4.0.0.

Comments are closed.