A minimal Plug to validate input path/query params in declarative way on your routers
Instead of returning {:error, reason} or other, I think you should return {:error, reason} or {:ok, value}. Any reason why you’ve decided to avoid the common :ok/:error pattern?
I know {:error, reason} is the idiom but since the response from the validator is handled on the library I didn’t think it was important to return {:ok, value} on success.
Having said that, I have no objection to changing the structure as you offer.
I don’t understand… Your validator can return any value, right? Not only the given argument. How would you distinguish the error {:error, x} from the value {:error, x} if you’re not using the {:ok, value} comvention?
I can’t think of a use case in which a validator returns {:error, value} as a valid value 
Again I’m not against returning {:ok, value} but right now I don’t see any reason to change the code.
For what I can understand and tried, this Plug doesn’t work in Phoenix, or am I mistaken?
So I was indeed mistaken, well at least in part… We cannot follow the docs to the letter, because the code will not compile, but it’s possible to make it work, as I describe in this other post: Phoenix Framework: Validate route parameter in the router






















