1 / 1 / 0
Регистрация: 29.10.2015
Сообщений: 116
1

Условие поиска в Web Api

25.05.2016, 17:49. Показов 667. Ответов 4
Метки нет (Все метки)

Пишу RESTful Api, столкнулся со следующим вопросом - как можно поменять условие поиска. К примеру - в коде используется условие поиска по ID (то есть номер машины idcar), как сделать чтобы поиск производился по году (year)

Сам контроллер:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WeApi.Models;
 
namespace WeApi.Controllers
{
    public class carController : ApiController
    {
 
        Car[] cars = new Car[]{
       
       new Car{idcar=1,model="Ferrari",year=2012},
       new Car{idcar=2,model="BMW",year=2010},
       new Car{idcar=3,model="Mazda",year=2002},
       new Car{idcar=4,model="Nizzan",year=2004},
       new Car{idcar=5,model="Renault",year=1998}
 
       };
 
 
        public IEnumerable<Car> GetAllCar() {
            return cars;
        }
 
 
        public IHttpActionResult GetCar(int id) {
            var car = cars.FirstOrDefault((c)=>c.idcar==id);
            if (car!=null)
            {
                return Ok(car);
            }
            else
            {
                return NotFound();
            }
        }
 
 
 
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2016, 17:49
Ответы с готовыми решениями:

2 сервиса (WCF Web API и ASP.NET Web API) на одном хосте
Есть БД с юзерами Есть консольное приложение (OWIN selfhost) с контроллером ImportController :...

Условие поиска
Здравствуйте. Возник такой вопрос при обработке таблицы в Экселе. Есть таблица. В ней нужно...

Условие поиска
Доброго времени суток. Нужно отобрать письма по отправителям (email или имя): CREATE PROCEDURE...

Web API Сервер
Есть сервер. Я знаю его IP адрес, логин и пароль. Как подключиться к серверу используя web api,...

4
58 / 58 / 47
Регистрация: 16.09.2014
Сообщений: 158
26.05.2016, 13:14 2
Можна так попробовать:
C#
1
2
3
4
5
6
7
8
9
10
 public List<Car> GetCarByYear(int year)
       {
       List<Car> list=new List<Car>();
       var car = cars.Where(c=>c.year==year);
       foreach(var entity in car)
       {
       list.Add(entity);
       }
           return list;
       }
0
184 / 183 / 96
Регистрация: 30.04.2016
Сообщений: 478
28.05.2016, 00:00 3
f1nger, ну как-то так

C#
1
2
3
4
5
6
7
8
9
10
11
public IHttpActionResult GetCars(int year) {
            var cars = cars.Where((c)=>c.year==year);
            if (car!=null)
            {
                return Ok(cars);
            }
            else
            {
                return NotFound();
            }
        }
0
1 / 1 / 0
Регистрация: 29.10.2015
Сообщений: 116
28.05.2016, 12:17  [ТС] 4
К сожалению, не работает. Возможно нужно что то поменять в html? Вот код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Cars Web API</title>
</head>
<body>
 
    <div>
        <h2>Cars</h2>
        <ul id="cars" />
    </div>
    <div>
        <h2>Type ID</h2>
        <input type="text" id="carId" size="5" />
        <input type="button" value="Press to find" onclick="find();" />
        <p id="car" />
    </div>
 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script>
    <script>
        var uri = 'api/car';
 
        $(document).ready(function () {
            // Send an AJAX request
            $.getJSON(uri)
                .done(function (data) {
                  
                    $.each(data, function (key, item) {
 
                        $('<li>', { text: formatItem(item) }).appendTo($('#cars'));
                    });
                });
        });
 
        function formatItem(item) {
            return item.idcar + '-' + item.model + '-' + item.year;
        }
 
        function find() {
            var id = $('#carId').val();
            $.getJSON(uri + '/' + id)
                .done(function (data) {
                    $('#car').text(formatItem(data));
                })
                .fail(function (jqXHR, textStatus, err) {
                    $('#car').text('Error: ' + err);
                });
        }
    </script>
</body>
</html>
0
184 / 183 / 96
Регистрация: 30.04.2016
Сообщений: 478
28.05.2016, 15:35 5
f1nger, скиньте весь проект.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2016, 15:35
Помогаю со студенческими работами здесь

Авторизация на web api
Здравствуйте. Пытаюсь сделать авторизацию на web api с куки и вообще не понимаю, как. Про куки...

Web Audio API
Доброго времени суток. Проблема при воспроизведении звука при помощи Web Audio API. Есть 2...

IIS web api
Как сделать клиентскую часть ASP.NET только для просмотра данных через web api с использованием...

Регистрация в Web API
Если мне нужен проект с web api 2 без использования asp net mvc то систему регистрации делать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru