(nettipäiväkirja 09.03.2015) Hhaa, keksinpäs viimeinkin ratkaisun siihen, miten tuetaan HTTP PUT-menetelmää, tuota kauneinta ja puhdasoppisinta, sivustojen ylläpidossa. Aikoinaan sille oli jopa asiakasohjelmia: esimerkiksi Netscape Navigator ja W3C Amaya osasivat editoida senhetkistä sivua ja lähettää sen takaisin palvelimelle PUT-metodilla, pyynnöstä.
Ongelma on tietenkin se, että tosi iso osa www-sivujen sisällöstä on automaattisesti generoitua, ja kun sivu viedään perille PUT-metodilla, se pitäisi jotenkin jäsentää takaisin lähdekoodimuotoonsa, jotta saataisiin säilytetyksi käyttäjän muokkaukset, jotka on tehty muotoiltuun, selaimelle lähetettyyn versioon. Mutta HTTP content negotiation tulee apuun! Selain pystyy pyytämään sivua monessa muodossa ja lähettämään sen monessa muodossa.
Esimerkiksi jonkin wikin voisi toteuttaa siten, että sivunmuokkauslomakkeen sijaan (tai lisäksi) osoitteiden sisällön voisi GETata ja PUTata text/plain-muodossa, jolloin muokattaisiin sivun lähdekoodia; jos taas selain pyytää text/html-muotoa, lähetetään kokonainen, muotoiltu sivu. Näin ovela asiakasohjelma voisi kohdella wikiä sellaisenaan REST-dokumenttivarastona.
Kun vain tietäisi, mikä asiakasohjelma tämmöistä nykyään enää tukee. Mutta voihan sellaisen tehdä?-) Jotain tällaista: http://members.sange.fi/~atehwa/vc/prod/userland-scripts/urledit (Samalla skriptillä muuten pystyy editoimaan olioita sellaisen REST-rajapinnan yli, jossa on eheä GET/PUT-logiikka.)