что такое RESTful ресурс web api? [Дубликат]

Ссылка NullReferenceException или Object, не установленная на экземпляр объекта, возникает, когда объект класса, который вы пытаетесь использовать, не создается. Например:

Предположим, что у вас есть класс с именем Student.

public class Student
{
    private string FirstName;
    private string LastName;
    public string GetFullName()
    {
        return FirstName + LastName;
    }
}

Теперь рассмотрим другой класс, в котором вы пытаетесь получить полное имя учащегося.

public class StudentInfo
{      
    public string GetStudentName()
    {
        Student s;
        string fullname = s.GetFullName();
        return fullname;
    }        
}

Как видно из вышеприведенного кода, оператор Student s - объявляет только переменную типа Student, обратите внимание, что класс Student не создается в этой точке. Следовательно, когда выполняется выполнение инструкции s.GetFullName (), она выкинет исключение NullReferenceException.

65
задан Meltemi 14 January 2011 в 01:37
поделиться

5 ответов

Любой объект, который вы хотите, чтобы пользователи могли получать доступ через URI и выполнять операции CRUD (или некоторые его подмножества), можно рассматривать как ресурс. В смысле Rails это в целом таблица базы данных, которая представлена ​​моделью и действует через контроллер.

Например, у вас может быть ресурс User (с таблицей users в вашей БД). Это представлено моделью User, которая сопоставляется с users_controller с map.resources :users (которая затем генерирует маршруты, такие как /users (коллекция пользовательских ресурсов) и /users/1 (определенный пользовательский ресурс).

Вы воздействуете на эти ресурсы, используя соответствующий метод HTTP при вызове этих ресурсов. POST в коллекции ресурсов (/users) создает новую запись, GET извлекает список ресурсов (/users ]) или конкретный пользователь (/users/1). PUT обновляет определенного пользователя (/users/1/), а DELETE уничтожает этого пользователя. URL-адреса являются одинаковыми, но результат (и действие контроллера) может быть различным основанный на HTTP-глаголе. Идея заключается в том, что /users/1 всегда означает «я взаимодействую с пользователем, у которого есть ID # 1», независимо от действия.

82
ответ дан Chris Heald 1 September 2018 в 06:10
поделиться

откройте папку с вашей моделью, это намек на то, какие у вас есть ресурсы! пример: пользователи, картинки, комментарии ...

3
ответ дан Brian Joseph Spinos 1 September 2018 в 06:10
поделиться

Вот хорошая статья , в которой обсуждается, как большинство разработчиков считают, что «Ресурс» является сингулярным с таблицей базы данных, аргумент, я думаю, заключается в том, что сопоставление с ресурсом сопоставляет контроллер с этой таблицей базы данных (или, с ActiveResource, на другой URL REST).

В принципе, я считаю, что «ресурс» - это «сохраненные данные». map.resources отображает 7 RESTful действий в определенный набор сохраненных данных.

Но я не слишком много думал об этом. Хороший вопрос!

7
ответ дан JohnMetta 1 September 2018 в 06:10
поделиться

Я думаю, что они, вероятно, имеют в виду это в общем смысле сети, т. е. Resource (Web) :

референт любого унифицированного идентификатора ресурса

Я не думаю, что это имеет какое-либо отношение к таблицам базы данных.

2
ответ дан Ken 1 September 2018 в 06:10
поделиться

Многие люди говорят, что ресурсы относятся к имеющимся таблицам базы данных. Иногда это может быть правдой, но не всегда верно. Я мог бы привести много примеров, когда у вас нет соответствующей таблицы в вашей базе данных для определенного ресурса. Следовательно, assosociating его с таблицами является довольно неправильным.

Я бы определил ресурс как маршрут, который отображает связанные запросы. Поэтому вместо объявления отдельных маршрутов для действий, которые вы хотите сделать, вы можете просто объявить их с помощью изобретательного маршрута. В Rails находчивый маршрут обеспечивает сопоставление между HTTP requests и URLs до controller actions.

Итак, скажите, что вы определили resources :users в config/routes.rb. Теперь вы можете использовать несколько помощников для контроллеров вашего приложения, например edit_user_path, который возвращает users/edit.

0
ответ дан Palak Singhal 1 September 2018 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: