GWT ve Google Cloud Bitiş noktası | Netgez.com
SORU
28 Mayıs 2013, Salı


GWT ve Google Cloud Bitiş noktası

Birkaç gün önce Mobil Uygulamalar Google App Engine ve Google Cloud Endpoints kullanmak için bir arka Uç geliştirmeye başladım. This tutorial bitiş noktaları otomatik olarak oluşturulan alıyorsanız nasıl yanı sıra Android için istemci kitaplığı gösterir.

Bizim Varlık var:

@Entity
public class Person implements IsSerializable{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Key key;

    private String name;
//...
} 

Ve bu sınıf için bitiş noktası:

@Api(name = "personendpoint")
public class PersonEndpoint {

    @ApiMethod(name = "getPerson")
    public Person getPerson(@Named("id") Long id) {
...

Ayrıca, oluşturulan Android son Nokta Kitaplığı kullanarak API GERİSİ kullanır) etmek istiyorumekleyinsunucuda bir Kullanıcı Arayüzü ile inşaWeb Toolkit (GWT) Google. Ama nasıl Sunucu Tarafında tarihi değiştirmek gerekir? Farklı yaklaşımlar görüyorum...

Seçenek A1: GWT . RPC Hizmeti Ekleme

public interface PersonServiceAsync {

    void insertPerson(Person person, AsyncCallback<Person> callback);

}

@RemoteServiceRelativePath("api")
public interface PersonService extends RemoteService {

    public Person insertPerson(Person person);

}
public class PersonServiceImpl extends RemoteServiceServlet implements PersonService{
    public Person insertPerson(Person person) {
        EntityManager mgr = getEntityManager();
        try {
            if (containsPerson(person)) {
                throw new EntityExistsException("Object already exists");
            }
            mgr.persist(person);
        } finally {
            mgr.close();
        }
        return person;
    }

        //...
}

Ama şimdi* *7 ve PersonEndpoint benim de aynı şeyi kabaca. DRY :) takip etmedik kaldı ki, bu Kişi bizim Varlıkları değiştirmek zorunda kalalım diye com.google.appengine.api.datastore.Key İzin Verilmiyor.

Seçeneği A2: Servis aramaları son nokta sınıf

@Override
public Person insertPerson(Person person) {
    return new PersonEndpoint().insertPerson(person);
}

Çalışması gerekir , ama yine de Varlığı com.google.appengine.api.datastore.Key Yazın ve Bitiş noktaları CollectionResponse<Person> kullanıyorsanız bu yana listPerson() durumunda Collection<Person> bir haline getirmek istiyoruz.

Seçenek B1: Java Kullanarak Bitiş noktası İstemci Kitaplığı

App Engine bizim API GWT Müşteri arka Uç bölünmüş ve Java için oluşturulan Bitiş noktası İstemci Kütüphaneleri kullanabiliriz. Son Nokta-API içinde bir RemoteServiceServlet/Diğerleri diyoruz. Ama bu eğer GWT client ve Bitiş noktaları bile aynı projede aynı sunucuda ya da varsa bile iki İstekleri sonunda, değil mi?

GWT Client --(RPC)-->GWT Server --(HTTP İsteği)-->App Motoru Arka Uç Sunucusu

Seçenek B2: JavaScript Kullanarak Bitiş noktası İstemci Kitaplığı

En iyi yaklaşım olabilir ama büyük JSNİ sona erecekti.


En iyi uygulama nedir? Projeleri Google Bulut Uç noktaları kullanarak bir proje GWT :) herhangi bir örnek bulamıyorum

CEVAP
21 Mart 2014, Cuma


Eski güzel DTO ikilem. Senin için yeterince iyi değil, sadece doğru ya da yanlış yoktur..

Kendini tekrar iyi bir şey olabilir. Şu anda Varlıkları herhangi bir değişiklik, mobil uygulama kullanıcıları etkileyecek bir nokta üzerinden veri modeli risklere. Hadi sunucu tarafında bir öznitelik - ^ Yeniden Adlandır deyin . app güncelledi olmayan her istemci aşağı gider.

Bir "" özelliği, GWT RPC ile seri hale getirilirken, kullanıcının e-posta herhangi bir javascript hata ayıklayıcı için hemen kullanılabilir hale getirir e-posta Kullanıcı varlık eğer güvenlik sorunu olduğunu da :

Gerçekten istediğiniz nedir?

Beni yanlış anlama, ben hayran deÄŸilim o "soÄŸan katmanları" canavar uygulamaları € kodu gibi görünüyor yapılan bir dönüşüm içine nesneleri diÄŸer objeler ile hemen hemen aynı özellikleri.

Bence doğru çözümdür arasında olması, bir "müşteri" modeli (DTOs), yapılan seri hale getirilebilir POJOs (veri deposu, ORM, JAXB, ne olursa olsun açıklama) ortaya çıkarmak, hem de GWT RPC İstemci Bitiş noktaları. GWT sunucu uygulaması ve Bitiş noktası sunucu varlıkları içine istemci modeli dönüşümü ve/onlara inat işleyecek aynı servisini arayın.

Bu şekilde kodunuzu yeniden, hala basit tutun, düzgün bir arayüz API genelinde ve içinizdeki iyi, Erol istemci arabirimleri değiştirmeden gelişmeye izin verebilirsiniz.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • My name is Festis and I'm free

    My name is F

    2 EKÄ°M 2011
  • njhaley

    njhaley

    24 NÄ°SAN 2006