deriveEndpointTemplate function
The path of a resolved URL with every identifying segment replaced by {id}
and the query dropped.
Implementation
String deriveEndpointTemplate(String url) {
var path = url;
final scheme = path.indexOf('://');
if (scheme >= 0) {
final slash = path.indexOf('/', scheme + 3);
path = slash < 0 ? '/' : path.substring(slash);
}
for (final delimiter in const <String>['?', '#']) {
final mark = path.indexOf(delimiter);
if (mark >= 0) path = path.substring(0, mark);
}
return path.split('/').map(_templateSegment).join('/');
}