What are the Slack Archives?
Itβs a history of our time together in the Slack Community! Thereβs a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.
Because this space is not active, you wonβt be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..
Can someone please guide me how to add a sub-resource in Glue API? I have a resource with `
Can someone please guide me how to add a sub-resource in Glue API? I have a resource with [glue.de](http://glue.de).spryker.local/pickup
and I would like to add a[glue.de](http://glue.de).spryker.local/pickup/add
endpoint as well. Is it possible to do it in the same module? Following is the glimpse of my ResourceRoutePlugin.php file
... class AddaxPickupPointsResourceRoutePlugin extends AbstractPlugin implements ResourceRoutePluginInterface { public function configure(ResourceRouteCollectionInterface $resourceRouteCollection) : ResourceRouteCollectionInterface { // to get all pickup points $resourceRouteCollection->addGet('get', true); return $resourceRouteCollection; } ...
Comments
-
Sub Resources are possible through implementing
\Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceWithParentPluginInterface
on the resource route plugin.But from a REST/JSON:API perspective there are a few issues here:
- resources should be plural (pickups instead of pickup)
0 -
- Adding a resource of a type should be done via HTTP verbs: POST /pickups/ instead of POST /pickups/add
0 -
Thank you @UL6DGRULR
0 -
@UL6DGRULR Does that mean I have to:
..implements ResourceRoutePluginInterface, ResourceWithParentPluginInterface
0 -
use Spryker\Glue\CartCodesRestApi\CartCodesRestApiConfig; use Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRoutePluginInterface; class AddaxPickupPointsResourceRoutePlugin extends AbstractPlugin implements ResourceRoutePluginInterface, \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceWithParentPluginInterface { /** * {@inheritDoc} * * @api * * @return string */ public function getParentResourceType(): string { return YourPickupPointsResourceClass::RESROUCE_PICKUP_POINT_OR_HOWEVER_YOU_NAMED_IT; } }
0 -
@UL6DGRULR Thanks again. I am a beginner so please excuse me if my questions are too simple.
AddaxPickupPointsResourceRoutePlugin
is my main class which has the basic configurations for route collections. Do I have to add another class in the 'Plugin' directory that implementsResourceRoutePluginInterface, ResourceWithParentPluginInterface
and eventually add it toGlueApplicationDependencyProvider::getResourceRoutePlugins()
?0 -
Yes, for the main resource you add one resource class, for each subresource you add another class that implements the ResourceWithParentPluginInterface to hint spryker that it should prepend the parent resource to your subresource.
/carts/{id} -> Main Resource (CartsResourceRoutePlugin)
/carts/{id}/items -> Subresource (CartItemsResourceRoutePlugin that implements ResourceWithParentPluginInterface)You can also have a look on the implementations of the
ResourceWithParentPluginInterface
to get a better impression how they work0 -
@UL6DGRULR Thank you again for the explanation. Just one more question. Is it possible to add a subresesource like
/carts/items
instead of/carts/{id}/items
?0 -
No, that's against the specification of JSON:API
0 -
@UL6DGRULR Thank you for the explaination.
0
Categories
- All Categories
- 42 Getting Started & Guidelines
- 7 Getting Started in the Community
- 8 Additional Resources
- 7 Community Ideas and Feedback
- 76 Spryker News
- 929 Developer Corner
- 787 Spryker Development
- 89 Spryker Dev Environment
- 362 Spryker Releases
- 3 Oryx frontend framework
- 35 Propel ORM
- 68 Community Projects
- 3 Community Ideation Board
- 30 Hackathon
- 3 PHP Bridge
- 6 Gacela Project
- 26 Job Opportunities
- 3.2K π Slack Archives
- 116 Academy
- 5 Business Users
- 370 Docker
- 551 Slack General
- 2K Help
- 75 Knowledge Sharing
- 6 Random Stuff
- 4 Code Testing
- 32 Product & Business Questions
- 70 Spryker Safari Questions
- 50 Random