SORU
7 Aralık 2010, Salı


Oyun dinlendirici! çerçeve

Bir proje öncelikle mobil uygulamalar için içerik sunan planlıyoruz, ama bir web sitesi olması gerekiyor.

Benim sorum anlamda Jersey veya Restlet DİNLENME mobil uygulamalar için API geliştirmek için kullanmak, ve kullan, sonra mı yapıyor! web sitesi hizmet vermektedir.

Ya da sadece Oyun kullanmak daha mantıklı geliyor! tüm bunu yapmak için? Eğer öyleyse, nasıl Oyun ile DİNLENME! çerçeve?

CEVAP
13 Aralık 2010, PAZARTESİ


İsteğiniz doğrultusunda, basit bir DİNLENME gibi bir yaklaşım. Aynı şekilde' çözüm çalışıyor ama içeriğini müzakere Başlığı Kabul kullanır. Codemwncis neredeyse çalışır İlk dosya yolları:

GET     /user/{id}            Application.user
POST    /user/                Application.createUser
PUT     /user/{id}            Application.updateUser
DELETE  /user/{id}            Application.deleteUser

Herhangi bir içerik türü burada belirtmek istemiyorum. Bunu yaparken "" URI bazı kaynaklar için. özel olmasını istediğiniz zaman IMHO gereklidir Her zaman geri dönmek için /users/feed/ bir rota bildirmek gibi/RSS Atom.

Uygulama denetleyicisi bu gibi görünüyor:

public static void createUser(User newUser) {
    newUser.save();
    user(newUser.id);
}

public static void updateUser(Long id, User user) {
    User dbUser = User.findById(id);
    dbUser.updateDetails(user); // some model logic you would write to do a safe merge
    dbUser.save();
    user(id);
}

public static void deleteUser(Long id) {
    User.findById(id).delete();
    renderText("success");
}

public static void user(Long id)  {
    User user = User.findById(id)
    render(user);
}

Gördüğünüz gibi ben sadece getUserJSON yöntemi kaldırıldı ve getUser yöntemi değiştirildi. Çalışmak için farklı içerik türleri için şimdi birkaç şablon oluşturmak zorunda. İstenen her içerik türü için bir tane. Örneğin:

user.xml:

<users>
  <user>
    <name>${user.name}</name>
    . . .
  </user>
</users>

kullanıcı.json:

{
  "name": "${user.name}",
  "id": "${user.id}",
  . . . 
}

user.html:

<html>...</html>

Bu yaklaşım, tüm tarayıcılar Başlığı Kabul kendi metin/html içerik türü göndermek beri tarayıcıları her zaman HTML görünümü verir. Diğer tüm istemciler (belki bazı JavaScript tabanlı AJAX istekleri) kendi istediğiniz içerik türünü tanımlayın. JQuerys ajax kullanarak() aşağıdaki yapabileceğin bir yöntem:

$.ajax({
  url: @{Application.user(1)},
  dataType: json,
  success: function(data) {
    . . . 
  }
});

Sen JSON biçiminde İD 1 olan Kullanıcı hakkında bilgi almak gerekir. Oyun şu anda HTML, JSON ve XML doğal olarak destekler, ancak kolayca ya official documentation izleyerek farklı bir tür kullanın veya content negotiation module kullanabilirsiniz.

Eğer geliştirme için Eclipse kullanıyorsanız eğer yolları ve ilgili içerik türünü test sağlar REST client plugin kullanmanızı öneririz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006