a middleware for choose parameter