Nuestro desarrollador backend implementó un punto final que permite que el método GET obtenga una lista de activos de la base de datos. Para filtrar los activos que quiero en la respuesta, necesito pasar algunos parámetros en la URL.
Primero implementé la siguiente función para montar la solicitud GET con todos los parámetros disponibles:
fetchAssetList(data) { let request_url = 'asset-mgt/assets?' if (data.name !== '' && data.name !== null){ request_url = request_url + "Name=" + data.name + "&" } if (data.assetCode !== '' && data.assetCode !== null){ request_url = request_url + "AssetCode=" + data.assetCode + "&" } if (data.parentAssetName !== '' && data.parentAssetName !== null){ request_url = request_url + "ParentAssetName=" + data.parentAssetName + "&" } if (data.type !== -1 && data.type !== null && data.type !== undefined){ request_url = request_url + "Type=" + data.type + "&" } if (data.parentAssetId !== -1 && data.parentAssetId !== null && data.parentAssetId !== undefined){ request_url = request_url + "ParentAssetId=" + data.parentAssetId + "&" } return axiosPrivate.get(request_url); },
No estoy muy contento con la solución actual que implementamos. La solicitud GET con tantos parámetros de consulta no se siente bien.
¿Cree que sería mejor tener un método GET que siempre devuelva todos los activos (.../assets), otro método GET que tome la identificación del activo (.../assets/{id}) y un método POST , que toma una carga para filtrar (.../assets/filter). cual es la mejor practica?