Jestem nowy w Odtwarzam 2 frameworkv. 2.1.1 z Javą i szukam najlepszego sposobu na wykonanie poniższych czynności bez powielania kodu.Odtwórz obiekty modelu z zewnętrznego interfejsu API
Aby uprościć, mam zaplecze backoffice Play 2, które korzysta z zewnętrznego interfejsu API. Nie zarządzam tym interfejsem API, ale wywołuję usługi REST w celu wykonywania operacji za pośrednictwem interfejsu API.
Obiekty tego interfejsu API są dokładnie takie same, jak obiekty Odtwórz 2 Obiekty modelu. Nie chcę jednak duplikować obiektów APi, aby dodać sprawdzenia dotyczące odtwarzania i inne adnotacje.
Czy istnieje sposób na dodanie tego typu zachowania przy użyciu plików konfiguracyjnych? Myślę o czymś takim, jak na przykład Hibernate hbm's.
Na przykład:
Obiekt w niezarządzanego API: (Pomijam pobierające i ustawiające dla uproszczenia)
public class Entity{
public String field1;
public String field2;
}
obiektu, który chcę uniknąć: (Pomijam pobierające i ustawiające dla uproszczenia)
public class Entity1{
@Required
@NonEmpty
@MinLength(3)
public String field1;
@Required
@NonEmpty
public String field2;
}
Przykład konfiguracji : (muszę coś takiego)
<class name="Entity1">
<property name="field1" >
<required/>
<nonEmpty/>
<minLength value="3"/>
</property>
<property name="field2" >
<required/>
<nonEmpty/>
</property>
</class>
Korzystanie adnotacje wydaje się lepsze niż przy użyciu plików XML lub dowolny inny plik konfiguracyjny, więc nie koniecznie chcą korzystać z plików konfiguracyjnych, jestem otwarty na wszelkie sugestie, aby rozwiązać ten problem.
Dzięki
Nie jestem pewien, co próbujesz osiągnąć tutaj. Co masz na myśli przez Backoffice Play2? Czy zewnętrzny interfejs API jest interfejsem REST API zwracającym dane json? – mor
Cześć! Backoffice to aplikacja internetowa, która wywołuje usługi REST w celu wykonywania operacji w interfejsie API. –
Czy mógłbyś wyjaśnić, jak generujesz obiekt 'Entity' z wywołania API? Od tego momentu będzie łatwiej zobaczyć, w jaki sposób możesz skorzystać z możliwości sprawdzania poprawności Play2. – mor