Sumber Daya Situs Web

Situs web adalah entitas inti IIS yang menentukan di mana dan bagaimana permintaan akan ditangani. API situs web memungkinkan konsumen untuk membuat, membaca, menghapus, atau memperbarui situs web mereka. Ini cocok untuk membuat skrip penyebaran otomatis atau membuat perubahan pada sumber daya yang ada.

GET/api/webserver/websites/{id}

{
    "name": "Default Web Site",
    "id": "{id}",
    "physical_path": "%SystemDrive%\\inetpub\\wwwroot",
    "key": "1",
    "status": "started",
    "server_auto_start": "true",
    "enabled_protocols": "http",
    "limits": {
        "connection_timeout": "120",
        "max_bandwidth": "4294967295",
        "max_connections": "4294967295",
        "max_url_segments": "32"
    },
    "bindings": [
        {
            "protocol": "https",
            "binding_information": "*:443:",
            "ip_address": "*",
            "port": "443",
            "hostname": "",
            "certificate": {
                "name": "Web Hosting Certificate",
                "id": "{certificate_id}",
                "issued_by": "CN=localhost",
                "subject": "CN=localhost",
                "thumbprint": "2F6C0E796B8DAC4A1DDBF59F1714A19D9520B88A",
                "valid_to": "2022-01-09T00:00:00Z"
            },
            "require_sni": "false"
        },
        {
            "protocol": "http",
            "binding_information": "*:80:",
            "ip_address": "*",
            "port": "80",
            "hostname": ""
        },
        {
            "protocol": "net.tcp",
            "binding_information": "808:*"
        }
    ],
    "application_pool": {
        "name": "DefaultAppPool",
        "id": "{application_pool_id}",
        "status": "started"
    },
    "_links": {
        "authentication": {
            "href": "/api/webserver/authentication/{authentication_id}"
        },
        "authorization": {
            "href": "/api/webserver/authorization/{authorization_id}"
        },
        "default_document": {
            "href": "/api/webserver/default-documents/{default_document_id}"
        },
        "delegation": {
            "href": "/api/webserver/feature-delegation?website.id={id}"
        },
        "directory_browsing": {
            "href": "/api/webserver/directory-browsing/{directory_browsing_id}"
        },
        "files": {
            "href": "/api/webserver/files/{files_id}"
        },
        "handlers": {
            "href": "/api/webserver/http-handlers/{handlers_id}"
        },
        "ip_restrictions": {
            "href": "/api/webserver/ip-restrictions/{ip_restrictions_id}"
        },
        "logging": {
            "href": "/api/webserver/logging/{logging_id}"
        },
        "modules": {
            "href": "/api/webserver/http-modules/{modules_id}"
        },
        "request_filtering": {
            "href": "/api/webserver/http-request-filtering/{request_filtering_id}"
        },
        "request_monitor": {
            "href": "/api/webserver/http-request-monitor/requests?website.id={request_monitor_id}"
        },
        "request_tracing": {
            "href": "/api/webserver/http-request-tracing/{request_tracing_id}"
        },
        "response_compression": {
            "href": "/api/webserver/http-response-compression/{response_compression_id}"
        },
        "response_headers": {
            "href": "/api/webserver/http-response-headers/{response_headers_id}"
        },
        "ssl": {
            "href": "/api/webserver/ssl-settings/{ssl_id}"
        },
        "static_content": {
            "href": "/api/webserver/static-content/{static_content_id}"
        },
        "vdirs": {
            "href": "/api/webserver/virtual-directories?website.id={id}"
        },
        "webapps": {
            "href": "/api/webserver/webapps?website.id={id}"
        }
    }
}

Pengikatan Situs Web

Pengikatan situs web menentukan port, protokol, dan nama host apa yang akan didengarkan situs. Setidaknya, pengikatan harus menentukan protokol, adddress ip, dan port. Properti binding_information dapat digunakan untuk menentukan alamat ip, port, dan nama host. Format binding_information adalah '{ip_address}:{port}:{hostname}' untuk protokol HTTP dan HTTPS. Sertifikat diperlukan untuk pengikatan HTTPS.

Membuat Situs Web

Membuat situs web memerlukan jalur fisik untuk menyimpan situs web, nama situs web, dan sekumpulan pengikatan yang harus didengarkan situs web.

Membuat situs web yang diaktifkan HTTP

Membuat situs web yang mendengarkan port 8081. POST/api/webserver/websites

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "8081",
            "ip_address": *
        }
    ]
}

Membuat situs web yang diaktifkan HTTPS

Untuk membuat situs dengan pengikatan HTTPS, sertifikat harus disediakan di objek pengikatan. Sertifikat adalah sumber daya yang tersedia melalui titik akhir /api/certificates. Untuk menentukan sertifikat yang diinginkan dalam pengikatan, tambahkan sumber daya sertifikat dan tentukan sertifikat id seperti yang ditunjukkan di bawah ini.

Membuat situs web yang mendengarkan permintaan HTTPS pada port 8082. POST/api/webserver/websites

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTPS",
            "port": "8082",
            "ip_address": *,
            "certificate": {
                "id": {certificate_id}
            }
        }
    ]
}

Membuat di kumpulan aplikasi tertentu

Untuk menentukan kumpulan aplikasi mana yang harus dibuat situs web, tambahkan properti application_pool ke isi permintaan. Kumpulan aplikasi hanya diidentifikasi oleh properti id .

Membuat situs web untuk kumpulan aplikasi tertentu. POST/api/webserver/websites

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "8081",
            "ip_address": *
        }
    ],
    "application_pool": {
        "id": {application_pool_id}
    }
}

Memperbarui Situs Web

Memperbarui situs web dilakukan melalui permintaan patch. Mengirim permintaan patch dengan situs web dalam status yang diinginkan akan memperbarui situs web pada server agar cocok.

Menambahkan pengikatan

Alasan umum untuk memperbarui situs web adalah menambahkan pengikatan. Sebagai contoh, mari kita katakan bahwa ada situs web dengan satu pengikatan pada port 80, dan kita ingin menambahkan pengikatan yang mendengarkan pada port 8080. Kita harus mengirim permintaan patch yang berisi daftar pengikatan dengan kedua pengikatan yang kita inginkan. Karena properti pengikatan adalah daftar, pengikatan yang sudah ada di situs web harus dikirim sebagai bagian dari permintaan sehingga tidak hilang.

Menambahkan pengikatan ke situs web. PATCH/api/webserver/websites/{id}

{
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "80",
            "ip_address": *
        },
        {
            "protocol": "HTTP",
            "port": "8080",
            "ip_address": *
        }
    ]
}