Wir verwenden swagger/nswag zur Dokumentation eines Webapi-Projekts.Swagger/NSwag: Parametertyp neu definieren
Als BodyParameters für die ActionMethods verwenden wir Klassen mit dem Suffix Command, die Parameter für z. Erstellen eines Domänenobjekts in einer Datenbank.
A Befehl-Klasse könnte wie folgt aussehen:
public class CreateChildCommand {
public Parent Parent { get; set; }
public int Position { get; set; }
}
Während Position ein einfaches int ist, Eltern sind eine Domain-Klasse in einer Datenbank beibehalten. Kann es so aussieht irgendwie:
public class Parent {
public Guid Id { get; set; }
public string Name { get; set; }
...
}
Es kann durch seine Id aus der Datenbank geladen werden, so dass wir die ID als Parameter nur für den Befehl Parameter wie dies im Json passieren:
{
"Position": 3,
"Parent": "41E71207-7F1E-4895-8BCC-14E1293A7907"
}
Beim Deserialisieren des Jsons wird der Elternteil über ein Dao mit seiner Id geladen. Das Problem ist jetzt, dass Swagger/nswag nicht verstehen, dass „Magie“ und zeigt die Parameter für die Methode wie folgt:
{
"Position": number,
"Parent": {
Id: "Guid",
"Name": "string",
...
}
}
Gibt es eine Möglichkeit Prahlerei zu sagen, den Typen zu ersetzen, für Eltern zu machen sieht es so:
{
"Position": "int",
"Parent": "Guid"
}
sehen Ich habe es über TypeMappers: – Tobias