GOOGLE ADS

lunes, 18 de abril de 2022

¿Es posible llamar a una API basada en roles de usuario con useSWR?

Me pregunto si es posible usar useSWR de Vercel si una condición es true. Es decir, si RoleOne es verdadero, llame a:

let { data: roleOneData, error: roleOneError } = useSWR(
"/api/getRoleOneInfo",
fetcher
)

Mi aplicación Next.js se ocupa de diferentes roles de usuario, y todos los roles de usuario comparten el mismo Shell de la aplicación, lo que significa que llamo a todas las API específicas del rol de usuario en el Shell de la aplicación. Me gustaría llamar solo a la API que necesito si puede ver que un rol de usuario específico es verdadero. Obtengo los roles de la userDataAPI.

Aquí están mis buscadores que se utilizan en varias funciones:

let { data: userData, error: userError } = useSWR("/api/getUserInfo", fetcher)
let { data: roleOneData, error: roleOneError } = useSWR(
"/api/getRoleOneInfo",
fetcher
)
let { data: roleTwoData, error: roleTwoError } = useSWR(
"/api/getRoleTwoInfo",
fetcher
)

Si inicio sesión como RoleOne, obtengo errores de API getRoleTwoInfoy viceversa. Me gustaría evitar llamar a la API de RoleTwo si estoy conectado como RoleOne y viceversa. ¿Cómo puedo lograr eso?


Solución del problema

Definitivamente posible y descrito en esta página en la documentación.

Solo tiene que hacer que su clave (la url de la solicitud en su caso) sea falsa cuando no desea que se realice la solicitud.

let { data: userData, error: userError } = useSWR("/api/getUserInfo", fetcher)
let { data: roleOneData, error: roleOneError } = useSWR(
userData?.role === "one"? "/api/getRoleOneInfo": null,
fetcher
)
let { data: roleTwoData, error: roleTwoError } = useSWR(
userData?.role === "two"? "/api/getRoleTwoInfo": null,
fetcher
)

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...