2015-05-24 14 views
5

Mam projekt C# WebAPI z metodą, która używa niestandardowego ModelBinder dla swojego parametru wejściowego. Kiedy patrzę na interfejs Swagger UI, który generuje Swashbuckle, zamiast mieć pojedynczy parametr "ciało", wszystkie właściwości "parametrów metody są wymienione osobno. Jeśli pozbywam się atrybutu [ModelBinder] i przełączam się na użycie atrybutu [FromBody], interfejs użytkownika Swagger pokazuje właściwą rzecz. Muszę użyć atrybutu [ModelBinder], więc wyłączenie tego nie jest opcją.Metoda Swashbuckle i Web Api z ModelBinder

Czy istnieje sposób, aby Swashbuckle wygenerował pojedynczy parametr "[FromBody] style atrybutu" zamiast wielu parametrów, które robi?

+1

Dlaczego po prostu ich nie łańcuchować jak IHttpActionResult Foo ([FromBody] [ModelBinder] Model SomeModel)? –

+1

Chociaż naprawił interfejs użytkownika Swagger, całkowicie zepsuł on API ... '" ExceptionMessage ":" Nie można powiązać parametru "wiadomość", ponieważ ma na sobie atrybuty powodujące konflikty. "' – HenryC

+0

Czy możesz dołączyć pełną próbkę (model , modelbinder, sygnatura metody api)? –

Odpowiedz

0

Ondrej ma rację. Po prostu je łańcuch:

IHttpActionResult Foo([FromBody][ModelBinder]SomeModel model) 
+0

Może to prowadzić do błędu podczas wywoływania interfejsu API, ponieważ ModelBinder.AllowMultiple = false. aby każde wywołanie API prowadziło do 500 odpowiedzi. – Roni