8 Ekim 2023 Pazar

Kaynak Güncellemelerinin Geri Alınması

    Bazen istemcileri bir geri alma işlevi sağlanması gerekebilir. Örneğin; bir müşteri bir teklife yakın zamanda yapılan bazı değişiklikleri geri almak isteyebilir. Bu sorun, en son anlık görüntüyü yeniden etkinleştirme yeteneği eklenmiş bir anlık görüntü almaya benzer. 

Bir müşteri bir kaynağı güncellemek için her PUT gönderdiğinde bir anlık görüntü alınır.

Geri almak için bir denetleyici kaynağı sağlanmalı. Bir değişikliği geri almak için istemcinin POST isteği göndermesine izin verin. Kaynağın geçerli durumunu denetleme aamcıyla bir işlem günlüğüne kaydedin. Sunucu kaynağın durumunu en son anlık görüntünden geri yükler ve istemciyi kaynağın URI sine yönlendirir.

Örnek tarifte anlatılmış http://wiki.example.org/trails/ColcuckLake deki bir wiki belge düşünüldüğünde Kaynağın temsilinde geri alma işlemini gerçekleştirmek için bir bağlantı ekleyin.


# Request
GET /trails/ColchuckLake HTTP/1.1 Host: wiki.example.org

# Response
HTTP/1.1 200 OK
Last-Modified: Sun, 01 Nov 2009 16:24:56 GMT
Content-Type: application/atom+xml;type=entry;charset=UTF-8

<atom:entry xmlns:atom="http://www.w3.org/2005/Atom"> <atom:author>

<atom:name>Joe Hiker</atom:name>


</atom:author>
<atom:title>Colchuck Lake</atom:title> <atom:id>urn:example:wiki:trails:ColcuckLake</atom:id>
<atom:link href="http://wiki.example.org/trails/ColchuckLake" rel="self"/> <atom:link href="http://wiki.example.org/trails/ColchuckLake/s1" rel="previous"/> <atom:link href="http://wiki.example.org/trails/ColchuckLake/undo;

t=72f2a2342ce7dc806ae7697e138bad71" rel="http://wiki.example.org/rels/undo"/>

<atom:content xml:lang="en" atom:type="html"> ... updated draft ...

</atom:content> </atom:entry>

Kaynağı mevcut durumunu geri almak için URI  bağlantısı kurulur. İsmteci bir geri alma isteği göndermek için http://wiki.example.org/rels/undo ilişiki türünde bağlantıyı kullanabilir. Bu bağlantıdaki URI bir değişikliği geri alabilen bir denetleyici kaynağıdır.

# Request

POST /trails/ColchuckLake/undo;t=72f2a2342ce7dc806ae7697e138bad71 Host: wiki.example.org
Content-Length: 0

# Response
HTTP/1.1 303 See Other
Location: http://wiki.example.org/trails/ColcuckLake

Denetleyici kaynağın mevcut durumunu geri yükler ve denetim amacıyla geri alma isteğini günlüğe kaydeder. Kaynağa yönelik sonraki bir GET isteği geri yüklenen duruma sahip olacaktır.

# Request

GET /trails/ColchuckLake HTTP/1.1 Host: wiki.example.org

# Response
HTTP/1.1 200 OK
Last-Modified: Sun, 01 Nov 2009 16:24:56 GMT
Content-Type: application/atom+xml;type=entry;charset=UTF-8

<atom:entry xmlns:atom="http://www.w3.org/2005/Atom"> <atom:author>

<atom:name>Joe Hiker</atom:name>
</atom:author>
<atom:title>Colchuck Lake</atom:title> <atom:id>urn:example:wiki:trails:ColcuckLake</atom:id>
<atom:link href="http://wiki.example.org/trails/ColchuckLake" rel="self"/> <atom:content xml:lang="en" atom:type="html">

... updated draft ... </atom:content>

</atom:entry>

Yenilemek için bu kodlama örnekler kapsamında detaylandırılıp devam edebilir.


Hiç yorum yok:

Yorum Gönder