asp.net mvc に基づいて頻繁に使用される REST サービスがあります。リソースの 1 つは、次のようなルートで特定のユーザーを指定するユーザー用です。
.../User/{id}.{format}
元:
http://mysvc.com/User/abc123.json
この場合の id はユーザー名です。現在、[オプションの] フォーマット拡張子と競合しないように、ピリオド以外のすべての文字を受け入れるルート マップがあります。
路線図:
/User/{id[^\\.]+}
これで、メール アドレスをユーザー名として使用する新しいクライアントができました。これは明らかに問題を引き起こします。既知のすべてのクライアントが現在 json を使用しているため、フォーマット拡張子のサポートを削除することを検討しました。ただし、これを行うのではなく、ルートを変更して、形式、json、または xml を受け入れ、ピリオドを許可するようにします。
IDにピリオドが含まれていても、提供されている場合はフォーマットをマッピングできるように、この正規表現をフォーマットする方法があるはずだと思います。しかし、私は現在メンタルブロックを抱えています。