3

技術スタック: Java 1.6、JAXB、Spring 3、JAX-RS (RESTEasy)

Web サービス (REST) を作成しましたが、スキーマを使用して要求を検証したいと考えています。検証のためにここに見られるような作業コードがあります。

私のコードは次のようになります。

public abstract class AbstractValidatingReader<T> implements MessageBodyReader<T> {

    @Context
    protected Providers providers;

    private Schema schema;

    public AbstractValidatingReader() {
       ....
    }

    @SuppressWarnings("unchecked")
    @Override
    public boolean isReadable(Class<?> arg0, Type arg1, Annotation[] arg2, MediaType arg3) {
        ....
        return arg0 == readableClass;
    }

    @SuppressWarnings("unchecked")
    @Override
    public T readFrom(Class<T> arg0, Type arg1, Annotation[] arg2, MediaType arg3, MultivaluedMap<String, String> arg4,
            .....
        return type;
    }

    protected abstract T validate(T arg0) throws WebApplicationException;
}

と、

@Component
@Provider
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.APPLICATION_XAMF })
public class ValidatingReaderImpl extends AbstractValidatingReader<Person> {

    @Override
    protected Person validate(Person arg0) throws WebApplicationException {

        return arg0;
    }

}

これはPersonクラスに対しては正常に機能し、リクエストは検証されています。しかし、連絡先、リンク、雇用など、他にも多くのリクエストがあります。

リクエストの種類ごとに AbstractValidatingReader クラスを拡張する必要がありますか?

私は同じスキーマに対して検証しているので、これを行うための多くのコード\クラスのように見えます。

ありがとう、アディ

4

0 に答える 0