-
API is disabled by default, to enable it you need to set flag to
true
inapp/config/packages/_sylius.yaml
:sylius_api: enabled: true
-
Sylius\Bundle\ApiBundle\DataProvider\OrderCollectionDataProvider
has been removed and the same logic is now implemented inSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\OrdersByLoggedInUserExtension
-
The service
Sylius\Bundle\ApiBundle\Serializer\ProductVariantSerializer
has been changed toSylius\Bundle\ApiBundle\Serializer\ProductVariantNormalizer
and its first argumentNormalizerInterface $objectNormalizer
has been removed from constructor.
- The endpoint
GET api/v2/order-items/{id}/adjustments
has been changed toGET api/v2/admin/order-items/{id}/adjustments
/new-api
prefix has been changed to/api/v2
. Please adjust your routes accordingly. Admin API is hardcoded to/api/v1
instead of/api/v{version}
.
-
Adjust your
config/packages/security.yaml
.-
Parameters from
config/packages/security.yaml
has been moved to separated bundles. You may delete them if you are using the default values:- parameters: - sylius.security.admin_regex: "^/%sylius_admin.path_name%" - sylius.security.api_regex: "^/api/v1" - sylius.security.shop_regex: "^/(?!%sylius_admin.path_name%|api/.*|api$|media/.*)[^/]++" - sylius.security.new_api_route: "/api/v2" - sylius.security.new_api_regex: "^%sylius.security.new_api_route%" - sylius.security.new_api_admin_route: "%sylius.security.new_api_route%/admin" - sylius.security.new_api_admin_regex: "^%sylius.security.new_api_admin_route%" - sylius.security.new_api_shop_route: "%sylius.security.new_api_route%/shop" - sylius.security.new_api_shop_regex: "^%sylius.security.new_api_shop_route%"
-
If you are not using the default values, you may need to add and change parameters:
parameters: - sylius.security.api_regex: "^/api" - sylius.security.shop_regex: "^/(?!%sylius_admin.path_name%|new-api|api/.*|api$|media/.*)[^/]++" - sylius.security.new_api_route: "/new-api" + sylius.security.api_regex: "^/api/v1" + sylius.security.shop_regex: "^/(?!%sylius_admin.path_name%|api/.*|api$|media/.*)[^/]++" + sylius.security.new_api_route: "/api/v2" + sylius.security.new_api_user_account_route: "%sylius.security.new_api_shop_route%/account" + sylius.security.new_api_user_account_regex: "^%sylius.security.new_api_user_account_route%"
-
Add new access control configuration and reorder it:
security: access_control: + - { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS } - - { path: "%sylius.security.new_api_route%/admin/authentication-token", role: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: "%sylius.security.new_api_admin_route%/authentication-token", role: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: "%sylius.security.new_api_user_account_regex%/.*", role: ROLE_USER } - - { path: "%sylius.security.new_api_route%/shop/authentication-token", role: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: "%sylius.security.new_api_shop_route%/authentication-token", role: IS_AUTHENTICATED_ANONYMOUSLY } - - { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS } - { path: "%sylius.security.new_api_shop_regex%/.*", role: IS_AUTHENTICATED_ANONYMOUSLY }
-
-
Unified API registration path in shop has been changed from
/new-api/shop/register
to/new-api/shop/customers/
. -
Identifier needed to retrieve a product in shop API endpoint (
/new-api/shop/products/{id}
) has been changed fromslug
tocode
. -
config/packages/fos_rest.yaml
rules have been changed to:rules: - - { path: '^/api/.*', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: true } + - { path: '^/api/v1/.*', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: true }
-
To have better control over the serialization process, we introduced
shop
andadmin
prefixes to names of serialization groups onsrc/Sylius/Bundle/ApiBundle/Resources/config/api_resources/*
andsrc/Sylius/Bundle/ApiBundle/Resources/config/serialization/*
. Several additional serialization groups have been rephrased, to improve readability and predictability of them. If you are using they on your custom entityapi_resource
configuration or serialization groups, you should check if one of these changes may affect on your app. If yes, change all occurs by this pattern:
- created serialization groups for
Locale
resource as:admin:locale:read
andadmin:locale:create
adjustment:read
changed to:admin:adjustment:read
andshop:adjustment:read
admin_user:create
changed to:admin:admin_user:create
admin_user:read
changed to:admin:admin_user:read
admin_user:update
changed to:admin:admin_user:update
avatar_image:read
changed to:admin:avatar_image:read
cart:add_item
changed to:shop:cart:add_item
cart:address
changed to:shop:cart:address
cart:apply_coupon
changed to:shop:cart:apply_coupon
cart:change_quantity
changed to:shop:cart:change_quantity
cart:complete
changed to:shop:cart:complete
cart:remove_item
changed to:shop:cart:remove_item
cart:select_payment_method
changed to:shop:cart:select_payment_method
cart:select_shipping_method
changed to:shop:cart:select_shipping_method
cart:update
changed to:shop:cart:update
channel:create
changed to:admin:channel:create
channel:read
changed to:admin:channel:read
checkout:read
changed to:shop:cart:read
country:read
changed to:admin:country:read
currency:read
changed to:admin:currency:read
customer:password:write
changed to:shop:customer:password:update
customer:read
changed to:admin:customer:read
andshop:customer:read
customer:update
changed to:shop:customer:update
customer_group:create
changed to:admin:customer_group:create
customer_group:read
changed to:admin:customer_group:read
customer_group:update
changed to:admin:customer_group:update
exchange_rate:create
changed to:admin:exchange_rate:create
exchange_rate:read
changed to:admin:exchange_rate:read
exchange_rate:update
changed to:admin:exchange_rate:update
order:create
changed to:shop:order:create
order:read
changed to:admin:order:read
order:update
changed to:admin:order:update
order_item:read
changed to:admin:order_item:read
andshop:order_item:read
order_item_unit:read
changed to:admin:order_item_unit:read
andshop:order_item_unit:read
payment:read
changed to:admin:payment:read
andshop:payment:read
payment_method:read
changed to:admin:payment_method:read
andshop:payment_method:read
product:create
changed to:admin:product:create
product:read
changed to:admin:product:read
andshop:product:read
product:update
changed to:admin:product:update
province:read
changed to:admin:province:read
province:update
changed to:admin:province:update
shipment:read
changed to:admin:shipment:read
andshop:shipment:read
shipment:update
changed to:admin:shipment:update
shipping_category:create
changed to:admin:shipping_category:create
shipping_category:read
changed to:admin:shipping_category:read
shipping_category:update
changed to:admin:shipping_category:update
shipping_method:create
changed to:admin:shipping_method:create
shipping_method:read
changed to:admin:shipping_method:read
shipping_method:update
changed to:admin:shipping_method:update
shop:currencies:read
changed to:shop:currency:read
shop:customer:write
changed to:shop:customer:create
shop_billing_data:read
changed to:admin:shop_billing_data:read
tax_category:read
changed to:admin:tax_category:read
tax_category:update
changed to:admin:tax_category:update
tax_category:create
changed to:admin:tax_category:create
taxon:read
changed to:admin:taxon:read
andshop:taxon:read
taxon:update
changed to:admin:taxon:update
taxon:create
changed to:admin:taxon:create
zone:read
changed to:admin:zone:read
zone:update
changed to:admin:zone:update
zone:create
changed to:admin:zone:create
zone_member:read
changed to:admin:zone_member:read
- removed redundant
zone_member:write