#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 безголовой доставки
Вот пример моего кода:
@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();
}
}