- Вам необходимо добавить новый класс Java, расширяющий
com.intershop.component.rest.capi.resource.AbstractRestResource
- Зарегистрировать реализацию в файле компонента
<implementation name="YOUR_NAME"
implements="AbstractRestResource"
class="YOUR_FQNAME_TO_IMPL_CLASS"
factory="JavaBeanFactory">
<requires name="name" contract="String" cardinality="1..1" />
<requires name="subResource" contract="RestResource" cardinality="0..n" />
</implementation>
- Создание экземпляра реализации в файле компонента
<instance with="YOUR_NAME" name="YOUR_INSTANCE_NAME">
<fulfill requirement="name" value="YOUR_SUBRESOUCE_NAME" />
</instance>
- Добавить как
subResource
в intershop.WebShop.RESTAPI.ProductResource
экземпляр
<fulfill requirement="subResource"
of="intershop.WebShop.RESTAPI.ProductResource"
with="YOUR_INSTANCE_NAME"/>
После этого ваш ресурс доступен под /product/SKU/YOUR_SUBRESOURCE_NAME
. Убедитесь, что у вашего класса impl есть открытый метод, и этот метод помечен javax.ws.rs.GET
и javax.ws.rs.Produces
@GET
@Produces("application/json")
public SomeRO get()
{
ApplicationBO applicationBO = provider.get();
ProductBORepository productBORep = applicationBO.getRepository(ProductBORepositoryExtension.EXTENSION_ID);
ProductBO product = productBORep.getProductBOBySKU(getParent().getName());
// Do the stuff you want with the product
}