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 6848 Точки

Това не е 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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.