Migration Guide (V2)
Why Update the Interface?
The new Interface V2, while keeping a similar API to Interface V1, is built on a completely new technology stack. This brings several advantages:
- Built-in web server: Uses Kestrel, so no need to set up IIS.
- Simplified architecture: Only one executable module,
AutoStore.Interface, replaces the previousInterface ServiceandInterface HTTP, making setup easier. - Faster request processing.
- Improved logging and error handling.
- Simpler configuration.
- Easier installation.
- Updated API documentation.
With the launch of Interface V2, the old V1 Interface is DEPRECATED. All new API features and improvements will be applied exclusively to the new interface.
Breaking Changes
The new interface contains some very minor breaking changes:
| Change | V1 | V2 |
|---|---|---|
| Task Interface URL endpoint | ASInterfaceHttp/AutoStoreHttpInterface.aspx | api/v2/task |
| Bin Interface URL endpoint | ASInterfaceHttp/BinInterface.aspx | api/v2/bin |
| Interface port | 80/433 | 44000 |
| Log Publisher port | 53005 | 44001 |
Timestamps accepted for inputs such as req_time and start_time | UTC ISO-8601 timestamps as well as a wider range of other timestamp formats | Only UTC ISO-8601 (2024-12-25T12:00:00Z) |
| Wrapping XML inside multiple parent nodes | The XML parser accepted an arbitrary number of parent nodes within the <params> element. For example, it was possible to submit<params><my_node><my_other_node><port_id>4</port_id></my_other_node></my_node></params>to the openbin endpoint, and it would be accepted. | This is not supported in Interface V2. This change is particularly relevant for the add_task endpoint, where tasks were commonly wrapped inside a <tasks> node. |
Set value 0 to port_id | Erroneously accepted in FusionPort™ related endpoints | This value is not allowed anymore. |
| Get the Simulation current speed factor. | gettimefactor | Renamed to get_simulation_speed. |
Running Interface V1 And V2 Simultaneously
This should NOT be done. Use one of the interfaces. If you install V2, uninstall V1. Using both at the same time can lead to state mismatch and race conditions.
How To Migrate To Interface V2
Migration to the new interface likely requires updating the WMS. The update of the two needs to be coordinated. This is the most tricky part when updating to the new interface.
Changes and migration should be verified using the WMS SDK simulation before deploying to production.
AutoStore recommends the following migration process:
- Install the new Interface.
- Deploy a new WMS that interface the new Interface (updated URLs, etc.) and not the old.
- Verify that it works
- If NOT, downgrade the WMS so it uses the old interface again.
- If works, UNINSTALL the old Interface by uninstalling the application and remove the corresponding IIS.
Future Plans For The Interface
All new features and improvements will only be applied to the new interface, NOT the old interface. The old interface will only receive vital security fixes for a year.
With the new interface, we have introduced versioning in the API endpoints (api/v2). This lets us more easily perform more major breaking changes to the API in the future. If/when this happens, we will of course let you know in due time. Having versioning explicitly in the endpoint makes it easier for us to be backwards compatible and ease the transition to new APIs.
Interface V1 will be supported for vital security and compatibility fixes until March 2026. New feature development has moved to interface V2.
Updated 2 months ago