Ich spielte mit den AutoRest und Swagger Projekten herum. Mein Web-API-Controller hat eine Methode namens GetAllAsync
. Wenn ich einen Client für den Dienst erzeuge, hat der Client eine Schnittstelle IResourcesOperations
, wobei Resources
der Name des Controllers ist.Benennung AutoRest generierte Methodennamen mit Swagger
Die Schnittstelle hat eine Methode namens GetAllAsyncWithHttpMessagesAsync
. Dann gibt es eine statische Klasse namens ResourcesOperationsExtensions
, die eine Methode namens GetAllAsync
definiert und eine GetAllAsyncAsync
. Die erste führt tatsächlich die zweite aus einem neuen Thread aus dem Thread-Pool (Task.Factory.StartNew
). Wer kennt den Grund dafür?
fand ich, dass ich meine Controller-Aktion-Methode mit dem Attribute schmücken kann
[SwaggerOperation("GetResources")]
Diese eine Methode auf der Client-Klasse generieren GetResourcesWithHttpMessagesAsync
genannt und alle Methoden für diese Web-API Aktion von der Methode Schnittstelle und Erweiterung entfernen Klasse.
Jetzt meine Frage sind, warum werden diese drei Methoden standardmäßig generiert?
Und gibt es eine Möglichkeit, einen Client mit einer Methode mit dem Namen GetResources
(d. H. Loszuwerden, dass WithHttpMessagesAsync Suffix) oder sogar GetAllAsync
?