Dinlendirici web hizmetleri sadece OR için hem de web hizmetleri ve web sayfaları içindir?

5 Cevap php

Ben PHP için huzurlu öğreticiler bir sürü okudum.

(Ben RoR kullanarak değilim, neden derinlemesine gitmek istemiyorum. PHP'nin daha aşina olmak ekibi nedeniyle)

Biz API'leri sahip içine gelecekteki genişleme için planlama çünkü ben o Dinlendirici web hizmetleri uygulamak için önemli olduğunu okudum.

Ben gibi öğreticiler baktım

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

Görünüşe göre dinlendirici webservices içindir.

Ne web sayfaları için hakkında? onlar da HUZURLU olabilir?

Cevabınız hayır ise, bu çizginin ötesine VE bana söylemeyin lütfen. Teşekkür ederim.

i adresler sadece mod_rewrite kullanmak için RESTFUL URL'ler gibi görünmesi için biliyorum. Ancak, ben eminim, huzurlu mimarlık sadece adresler yapım bakmak güzel ötesine geçer.

Örneğin için, ben list.php adında bir web sayfasında öğelerin bir listesi var. Her öğenin yanında bir silme bağlantı vardır. Örneğin, list.php? Id = 1 & DeleteItem

Ne olur birisi list.php tıkladığında? Id = 1 & DeleteItem bağlantı, tabii ki ben geri aynı list.php dosyaya gidin ve $ _GET de param DeleteItem kontrol olmasıdır.

Tespit ederse, ben daha sonra $ _GET de param kimliği dayalı veritabanından silecektir.

Hangi sonra ben herhangi bir params OLMADAN list.php geri yönlendirir.

Ben nasıl ben bütün bu akış RESTFUL yapabilirim, merak ediyorum?

Ben HTTP isteği yöntemi (SİL) kullanmanız gereken bir şey silmek için, çünkü REST soruyorum.

Açıkçası benim bağlantılarda hepsi sadece basit <a href="list.php?id=1&deleteitem">Delete</a> vardır

Beni aydınlatmak Lütfen.

Benim programlama güçlü değil ve verilen tavsiyenin mümkün olduğunca meslekten olabilir eğer iyi olurdu.

Teşekkür ederim.

EDIT

Ben soru takip 2. var.

Bu çağrı ile öğelerin bir listesi olduğu için soru 1), nasıl URL i RESTful yapmak istiyorsanız nasıl olurdu?

Listedeki öğelerin her biri için, ben şimdi anlıyorum sonraki i SİL bağlantıları koyarak olduğum soru 2), i kullanmalısınız

<form method="POST">
<input type=hidden name="_method" value="delete">
<input type="submit" >
</form>

yerine.

Ancak formu nereye konmalıdır? madde url? / Ürün / {item-id}

Ama SONRA başarıyla veritabanında satır silme bir başarı mesajı gösteren bu liste sayfaya geri dönmek istiyorum.

Ben de ben başarı iletisi ile bu ilan sayfayı yenileyin zaman bir açılır mesaj önlemek istiyor.

Ben geri bu list.php url göndermek, o zaman huzurlu evet değil mi? i her madde kendi url gereken bir kaynak olduğu aşağıdaki cevaplar söylendi çünkü.

Beni aydınlatmak Lütfen.Teşekkür ederim.

5 Cevap

Dinlendirici web hizmetleri söz ederken yaygın olarak kullanılan, ancak çok iyi web sayfaları için geçerli olabilir. Özetle, huzurlu olmanın kaynaklar ile ilgili ilgilidir. Bir kaynak, bir kişi, bir kitap, bir film, bir tiyatro, bir bilet, ya da fantezi ne olursa olsun olabilir.

Bir kaynak üzerinde gerçekleştirebilir dört temel işlem vardır.

  • oluşturun (POST)
  • read (GET)
  • update (PUT)
  • silme (DELETE)

Çoğu web tarayıcıları PUT ve DELETE eylemleri desteklemez, bu nedenle sadece veri göndermek için POST eylemleri kullanabilirsiniz. Sahte çerçeve alır ve yolları bu değere bağlı olduğu adında gizli bir parametre _method ileterek PUT ve DELETE raylar.

Ayrıca, herhangi bir yıkıcı eylem için GET kullanmak asla. Lütfen kaynak (ler) durumunu değiştiren herhangi bir eylem / ya POST, PUT ile aranmalıdır, ya DELETE değişikliği (sahte PUT bağlı gerek) olması halinde POST ile SİL.

Ben başka bir şey eğer, sadece bir fikir almak için sığınakta yönlendirme Rails işlenir şekilde ödeme öneririm. Yukarıdaki dört eylemleri hiçbir şekilde mümkün bir kaynak değiştirmek için yeterli, bununla beraber Raylar da kullanışlı ses eylemlerin diğer üç tip tanıttı.

  • index (tüm öğelerin görünümünü listeleme)
  • new (usually a form view to add a new resource)
  • edit (usually a form view to update an existing resource)

Pretty URL sığınakta siteleri tasarımı masanın üzerinde kesinlikle, ama muhtemelen büyük kazanmak kodun kalitesi otomatik olarak artırır olmasıdır. Sadece kaynakları ile uğraşıyoruz ve bir kaynağa uygulanabilir sadece dört potansiyel eylemler vardır, o zaman işler kendileri temizlemek başlar.

Edit 1: Self-descriptive URL's are preferred and will make your life easier, but there's nothing stopping from creating cryptic URLs that uniquely identify a resource and manage it using the HTTP verbs. URLs such as the ones below (using md5) to uniquely identify resources are perfectly RESTful.

// represents a person "John Doe"
http://example.com/4c2a904bafba06591225113ad17b5cec

// represents the movie "Lord of the Rings: The Two Towers"
http://example.com/1d9198260dec7bda3fb21e232d60fec3

// represents the "Formula One" sport
http://example.com/fs340as?id=23xa12&type=SP012Ts

Oradaki Temsili Devlet Transferi bulunuyor. MD5 hash sabit kalır kaynağın posta adresi gibi. Temsil filmin detayları (html / xml / json / vb.) Olabilir, ya da belki filmin kendisi video) istemci yeteneklerine bağlı.

Edit 2: Let's say you have a resource which is a collection - countries of the world. It could be represented by a URI and HTTP verb such as:

GET /countries

Disk belleği yerine kaynağın kendisinden daha uygulamanın bir özelliği olduğundan, bunu kontrol etmek querystring parametreleri kaynağı olabilir.

GET /countries?page=1

Bir ülke de ülkelerin kaynağın bir parçası olan bir kaynaktır. Sen gibi bir URL ile bir ülkeyi belirlemek olabilir:

/countries/<id>

Ve bu ülke üzerindeki operasyonlar bu fiiller ile yapılmalıdır:

GET    /countries/<id>
POST   /countries  -- the new country has no existing representation
PUT    /countries/<id>
DELETE /countries/<id>

Uzun cevabı kısa: evet. KALAN hem içindir. Eğer tüm web sitelerinin basit olsa bile hala sayfanızı GET ve belki defterine bir girdi eklemek için olanları kişisel veri POST olurdu olmasıdır. Bu hepimiz bir şekilde REST uygun.

Senin durumunda kötü tarayıcı uygulaması zor bir PURE dinlendirici bir şekilde uygulamak için yapar. SİL Javascript olmadan desteklenmez ve bu nedenle yine GET veya POST (her ikisi REST DELETE den tamamen farklı bir anlam var olan) kullanmak gerekir.

Dinlendirici bir yaklaşım elbette de web sayfalarında kullanılabilir. Bir URL komutları koyarak söz vardır yan etkileri nedeniyle iyi bir fikir değildir. (veya bu modeli değiştirir her şeyi) veritabanı değiştirmek, kullanım POST komutları.

Tabii ki, PUT ve DELTE büyük web tarayıcılarında, ama her zaman method = "PUT" gibi bazı özel parametresi ile basit bir POST gönderebilirsiniz var bilmiyorum, method = " "vb SİL

Ben daha kolay sığınakta arabirimleri uygulama yapmak için Zend Framework üstüne küçük bir çerçeve yazdı:

http://github.com/mikekelly/Resauce

Bu web hizmetleri ve web siteleri için bu kullanabilirsiniz. Esasen, bir web sitesi HTML tarafından yönlendirilen sadece bir web servisidir.

Sığınakta değil "güzel URI'lerini" anlamına gelir. URI'lar DİNLENME URI'lar hakkında söylüyor tek şey "delete" gibi bir eylem ve parametreleri içermesi gerektiğini, bir kaynak belirlemek olmasına rağmen.

Sizin durumunuzda çağırır

DELETE /items/6793

Cevap ileti gövdesi olarak modifiye listesi ile tipik durum kodu 200 OK olacaktır. Bakınız: http://restpatterns.org/HTTP_Methods/DELETE

HTML 4 GET dışında formu eylemlerini desteklemek ve POST vermediği gizli bir paramatresi ile geçici çözüm ve sunucu tarafında HTTP yöntemini geçersiz kılmak zorundayız.