Професионална програма
Loading...
aivian avatar aivian 51 Точки

[Homework] ASP.NET Web API

Имам няколко дребни въпроса. Когато правим логиката за добавяне на нов автор пише да се използват binding models. Моят binding model изглежда така:

public class AuthorBindingModel
    {
        public string FirstName { get; set; }

        [Required]
        public string LastName { get; set; }
    }

Въпроса ми е - как да напиша заявката в Postman, за да пропусна примерно FirstName и да ме го запише в базата като NULL? Като дам http://localhost:port/api/authors?lastname=s ми хвърля една дълга грешка за валидация, а firstname не е required.

Втория въпрос ми е - как да наглася името на route - а, за да изглежда по този начин /api/books?search={word}? Като подам на метода параметър search ми прави route - а /api/books?search={search}, а като си правя custom route - не ми позволява да използвам question mark - ове.

PS: Като се замисля, от втория въпрос няма много смисъл :D Но по принцип, ако искаме да правим промени по URI параметрите, как става?

1
C# Web Services & Cloud 19/08/2015 14:55:48
scr33nsh0o7 avatar scr33nsh0o7 61 Точки

някой знае ли как се прави този rout

 /api/books?search={word}

да са различни след ?  имената , а не да стоят ?word={word}  или ?search={search}

0
RoYaL avatar RoYaL Trainer 6845 Точки

Това не е route, а зависи единствено и само от документацията, която WebApi2 си прави.

Може да има по-хитър начин, но за това което се сещам е да се направят условие в съответното View.

Help страницата се намира в Areas/HelpPage

Съответното визуализиране се намира във Views/Help/DisplayTemplates/ApiGroup.cshtml

Стойностите с URL-а се намират в api.RelativePath. Вариант е да намериш как се попълва това пропърти и да го промениш там. Хакът за който се сещам е да го направиш директно във view-то, което като цяло е грозно, но ще постигне целите ти:

@foreach (var api in Model)
    {
        var url = api.RelativePath;
        if (url == "api/Values?firstName={firstName}&lastName={lastName}")
        {
            url = "api/Values/?firstName={asd}";
        }
        <tr>
            <td class="api-name"><a href="@Url.Action("Api", "Help", new { apiId = api.GetFriendlyId() })">@api.HttpMethod.Method @url</a></td>
            

Това сега при мен визуализира

Values
API	Description
GET api/Values/?firstName={asd} 	

No documentation available.

 

0