CRUD (создание, чтение, обновление, удаление)
API администрирования IIS предоставляет прямой доступ к ресурсам в системе. Многие из этих ресурсов позволяют создавать, читать, обновлять и удалять операции. REST API сопоставляет операции CRUD с методами HTTP. В следующей таблице указывается, какой метод HTTP сопоставляется с какой операцией.
Операция CRUD | Метод HTTP |
---|---|
Создавать | ПОМЕСТИТЬ |
Читать | ПОЛУЧИТЬ |
Обновлять | PATCH / PUT |
Удалить | УДАЛИТЬ |
Ресурсы создаются путем отправки HTTP-запросов POST в API. Тип ресурса определяется URL-адресом запроса. Текст запроса должен содержать объект JSON, описывающий создаваемый ресурс. Объект в тексте запроса определяет начальное состояние ресурса при его создании. Некоторые ресурсы требуют предоставления определенных свойств при их создании, другие могут быть созданы с пустым объектом JSON.
Создание ресурса при задании свойства имени. POST
{
"name": "Example Resource Name"
}
Иногда создаются ресурсы, которые предназначены для принадлежности к другому ресурсу. Например, если приложения должны принадлежать к веб-сайту и кто-то хотел создать новое приложение , то они будут указывать это отношение во время создания приложения, как показано ниже.
Создание приложения для веб-сайта. POST
{
"path": "/MyApp",
"physical_path": "c:/sites/mysite/myapp",
"website": {
"id": {website_id}
}
}
Ресурсы извлекаются путем выполнения HTTP-запросов GET. Существует два основных метода извлечения ресурсов. Первый метод включает запрос списка ресурсов, второй метод заключается в запросе одного ресурса. Запросы к одному ресурсу помечаются наличием идентификатора ресурса в URL-адресе запроса. Иногда в URL-адресе можно также указать ресурсы с помощью синтаксического анализа строки запроса. Это поведение зависит от отдельной конечной точки API.
Чтение списков ресурсов выполняется путем запроса конечной точки ресурса без указания отдельных ресурсов идентификатора. Иногда для ресурсов требуются параметры строки запроса или они не могут создавать допустимые списки. Например, приложения IIS живут в /api/webserver/webapps конечной точке, но запросы к этой конечной точке не будут создавать никаких сведений. Это связано с тем, что веб-сайт должен быть указан для указания API, какие приложения должны отображаться. Поэтому потребители запросят /api/webserver/webapps?website.id={website_id}, чтобы просмотреть список приложений.
Получение списка ресурсов. GET/api/web
{
"websites": [
{
"name": "Default Web Site",
"id": "{id}",
"status": "started",
"_links": {
"self": {
"href": "/api/webserver/websites/{id}"
}
}
},
{
"name": "My Site",
"id": "{id_1}",
"status": "started",
"_links": {
"self": {
"href": "/api/webserver/websites/{id_1}"
}
}
}
{
"name": "docs",
"id": "{id_2}",
"status": "started",
"_links": {
"self": {
"href": "/api/webserver/websites/{id_2}"
}
}
}
]
}
Ресурсы извлекаются отдельно, указав идентификатор ресурса в URL-адресе конечной точки ресурса. Некоторые конечные точки API также позволяют указывать отдельные ресурсы, предоставляя уникальные параметры строки запроса. Например, можно получить файл, указав идентификатор файла в URL-адресе или указав physical_path файла.
Ресурс файла позволяет нескольким методам извлекать отдельные файлы:
- /api/files/{id}
- /api/files?physical_path={физический путь к файлу}
Конечная точка файлов обеспечивает это поведение, так как для любого заданного физического пути может существовать только один файл, поэтому это уникальное определение параметра строки запроса.
Обновления выполняются путем выдачи HTTP-запросов PATCH на URL-адрес, на который находится ресурс. При выполнении запроса PATCH свойства текста запроса считываются, а если ресурс имеет свойство с тем же именем, что и свойство ресурса, будет задано новое значение.
{
"name": "My Site",
"id": "12345",
"physical_path": "c:\\sites\\mysite"
"_links": {
"self": {
"href": "/api/webserver/websites/{12345}"
}
}
}
Запрос на исправление для обновления имени ресурса. PATCH/api/webserver/websites/12345
{
"name": "My Site 2"
}
{
"name": "My Site 2",
"id": "12345",
"physical_path": "c:\\sites\\mysite"
"_links": {
"self": {
"href": "/api/webserver/websites/{12345}"
}
}
}
Ресурсы удаляются путем отправки HTTP-запроса DELETE в URL-адрес, по которому находится ресурс. Это URL-адрес, содержащий идентификатор ресурса.