refactor: use member function to build urls

And drop string-string_view concatenation, which cannot be perfectly
inlined (move is not free).