Liferay 7 Как переопределить/изменить/получить доступ к безголовым реализациям API?

#liferay #liferay-7

Вопрос:

Интересно, могу ли я переопределить/изменить реализации безголового API, а если нет, могу ли я сослаться на эти реализации в своей пользовательской реализации безголового API.

Идея:

Я хочу получить структурированное содержимое с измененными значениями.

Вариант использования:

Я создаю веб-контент в Liferay и размещаю текст, например

 This is my user {user.name}.

 

и получите безголовый API в цене

 This is my user Steve.
 

Я не хочу создавать все с нуля, и мне интересно, возможно ли это.

###РЕДАКТИРОВАТЬ:

Я обнаружил, что могу делать ссылочные аннотации, подобные этой

 //import com.liferay.headless.delivery.resource.v1_0.StructuredContentResource;

@Reference
private StructuredContentResource _apiStructuredContent;
 

Когда я пытаюсь получить содержимое структуры этим методом:

 StructuredContent structuredContent = _apiStructuredContent.getSiteStructuredContentByUuid(siteId, uuid);
 

Я начинаю java.lang.NullPointerException .

Я проверил 3 раза, если sideId и uuid верны, и они верны.

Я взял sideId и uuid из ответа Liferay Api безголовой доставки

https://app.swaggerhub.com/apis/liferayinc/headless-delivery/v1.0#/StructuredContent/getSiteStructuredContentByUuid

Вот пример моего кода:

 @Component(
    property = {
        JaxrsWhiteboardConstants.JAX_RS_APPLICATION_BASE   "=/greetings",
        JaxrsWhiteboardConstants.JAX_RS_NAME   "=Greetings.Rest"
    },
    service = Application.class
)
public class HeadlessApiTestApplication extends Application {

    @Reference
    private StructuredContentResource _apiStructuredContent;

    public Set<Object> getSingletons() {
        return Collections.<Object>singleton(this);
    }

    @GET
    @Produces("text/plain")
    public String working() {
        String uuid = "1ebfb39c-aa8f-c3cc-d1ab-171b8687d952";
        Long siteId = 37729L;
        StructuredContent structuredContent = null;
        try {
            structuredContent = _apiStructuredContent.getSiteStructuredContentByUuid(siteId, uuid);
        } catch (Exception e) {
            e.printStackTrace(); //here got an exception java.lang.NullPointerException
            return "Error";
        }

        return structuredContent.getTitle();
    }
}