webapi_swagger_documentation
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
webapi_swagger_documentation [2018/10/23 10:37 (6 years ago)] – kevin | webapi_swagger_documentation [2022/02/23 13:40 (2 years ago)] (current) – kevin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Windward Web API Swagger 2.0 Documentation | + | ====== Windward Web API Swagger 2.0 Documentation ====== |
===== Summary ===== | ===== Summary ===== | ||
- | Our Web API solution runs as a service and provides a doorway to push and pull information from a System Five database. | + | The s5webAPI |
- | The following is an explanation for retrieving and using the Swagger 2.0 documentation from all available endpoints of the Windward | + | The following is an explanation for retrieving and using the Swagger 2.0 documentation from all available endpoints of the Windward |
+ | |||
+ | As a developer, keep in mind since this is a 32-bit service, it will not be able to access more than [[https:// | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | < | ||
- | <note important> | ||
===== Endpoints ===== | ===== Endpoints ===== | ||
- | As of the 6.2.2.175 there are multiple endpoints available for the Windward Web API each providing different functions for the Web API. These endpoints are the following: | + | As of the 6.2.2.175 there are multiple endpoints available for the Windward Web API each providing different functions for the S5WebAPI. These endpoints are the following: |
- APBill | - APBill | ||
- Category | - Category | ||
Line 22: | Line 27: | ||
- TServerMethodsWebAPI | - TServerMethodsWebAPI | ||
- | All of these endpoints can be accessed with either of the following | + | All of these endpoints can be accessed with the following |
* http:// | * http:// | ||
- | * http:// | ||
==== Deprecated Methods ==== | ==== Deprecated Methods ==== | ||
- | As of the 6.2.2.175 the following methods in the endpoint TServerMethodsWebAPI are deprecated. | + | As of the 6.2.2.175 the following methods in the endpoint TServerMethodsWebAPI are deprecated. |
- Customers_Insert | - Customers_Insert | ||
- Customer_Read | - Customer_Read | ||
Line 52: | Line 56: | ||
- Insert_Full_Invoice | - Insert_Full_Invoice | ||
- Insert_AP_Bill | - Insert_AP_Bill | ||
+ | < | ||
+ | Any new software development should make use of new methods found within a domains endpoint. | ||
+ | </ | ||
+ | ===== Known Limitations ===== | ||
- | Replacement methods for these newly deprecated methods can be found within | + | Prior to 6.2.2.175 released versions of the Web API had a maximum limit of 32 concurrent connections. This limit has been removed and is now limited by how much available memory (max 4GB as this is a 32-bit service) running the API. |
- | ===== Known Limitations ===== | + | The Swagger 2.0 interface is only supported via HTTP, it is not supported via HTTPS. The other methods described below can be used when HTTPS is the only protocol configured. |
- | Prior to 6.2.2.175 released versions of the Web API has a maximum limit of 32 concurrent connections. This limit has been removed in the 6.2.2.175 | + | ===== Setup and Configuration Details ===== |
- | <note tip> | + | Configuring both HTTP and HTTPS is not required, but in order to support HTTPS communication and allow the use of the Swagger interface, both need to be configured. |
- | Due to the JSON parser that the Windward Web API uses, any ' | + | |
- | </note> | + | Azure Hosting - Network Security - Both the HTTP Port 80 and the HTTPS Port 443 need to be opened in order to allow external communication. The use of other Ports can be supported, but it is recommended that the standard HTTP - 80 and/or HTTPS - 443 be used to eliminate confusion. |
+ | |||
+ | Azure VM - Firewall Rules - Inbound rules for the same HTTP Port 80 and/or HTTPS port 440 need to be added. | ||
+ | |||
+ | The specific instance of the S5WebAPISvc.exe needs to have UDP and TCP Inbound rules to allow communication. | ||
+ | |||
+ | Azure Environment Variables on the VM - A System Environment Variable named S5INIPATH must exists and contain the path to the SystemFive_SaaS.ini file that is used by System Five SaaS to launch the application. This INI file should already exists and be in use by the installation of SystemFiveSaaS.exe. The API now uses this same INI file to obtain required settings. | ||
===== Retrieving The Documentation ===== | ===== Retrieving The Documentation ===== | ||
- | The Swagger documentation for a particular endpoint can be retrieved by using a method of the endpoint. | + | The Swagger documentation for a particular endpoint can be retrieved by using a method of the endpoint. |
* http:// | * http:// | ||
- | * http:// | ||
- | The contents of the response from the calls is the Swagger 2.0 documentation, | + | The contents of the response from the calls are the Swagger 2.0 documentation, |
- | After configuring | + | You can also turn on " |
+ | ==== Interacting With The Swagger 2.0 Documentation Via A Browser ==== | ||
+ | - As of release 6.2.2.179 Swagger 2.0 documentation can be viewed and interacted with through a browser. | ||
+ | - Using a set of options in the S5WebAPISvc.ini file, the configuration of the **Swagger Publishing** can be set and changed. | ||
+ | - {{: | ||
+ | - Once the S5WebAPISvc.ini options have been set, and the WebAPI service is running, open a web browser and enter localhost: | ||
+ | - Where PORT is the port under the Swagger Publishing options in S5WebAPISvc.ini | ||
+ | - After entering the WebAPI credentials and clicking the ' | ||
+ | - On this page, edit the contents of the search/ | ||
+ | - PORT is the port that the WebAPI is listening on (specified in S5WebAPISvc.ini, | ||
+ | - ENDPOINT is any one of the endpoints of the WebAPI. | ||
+ | - After clicking on the ' | ||
+ | - Once authorized the Swagger 2.0 documentation and WebAPI service can be interacted with. | ||
+ | - By clicking on an API method, the page will show more information for the method. | ||
+ | - Clicking the 'Try It Out' button allows users to enter parameters, and run the method. | ||
+ | - Clicking the ' | ||
+ | < | ||
+ | </ | ||
==== Getting The Swagger 2.0 Documentation Using Postman ==== | ==== Getting The Swagger 2.0 Documentation Using Postman ==== | ||
- | - Open Postman. | + | - Open [[https:// |
- Set the request type to GET. | - Set the request type to GET. | ||
- Enter one of the URLs, substituting the API_IP_ADDRESS, | - Enter one of the URLs, substituting the API_IP_ADDRESS, | ||
* http:// | * http:// | ||
- | * http:// | ||
- Set the authorization type to Basic and enter your Web API credentials. | - Set the authorization type to Basic and enter your Web API credentials. | ||
- Send the request. | - Send the request. | ||
Line 92: | Line 121: | ||
- In the Swagger 2.0 documentation dialog Right click and choose Paste from your clipboard | - In the Swagger 2.0 documentation dialog Right click and choose Paste from your clipboard | ||
- Click on ' | - Click on ' | ||
- | - The list of available methods | + | - The list of available methods |
{{: | {{: | ||
- | ==== Interacting With The Swagger | + | |
- | - As of Beta 6.2.7, The Swagger | + | ===== Samples |
- | - Using a set of options | + | <note tip> |
- | | + | * [[webapi: |
- | | + | * [[webapi: |
- | - Where PORT is the port under the Swagger Publishing options | + | * [[webapi: |
- | - After entering | + | * [[webapi: |
- | - On this page, edit the contents | + | |
- | - PORT is the port that the WebAPI | + | ===== What Version are you using? ===== |
- | | + | Depending on the feature you may be looking for in an endpoint you may need to know what version you are running. |
- | | + | It is common to have a training and production WebAPI configured when testing new features. |
- | - Once authorized | + | * http:// |
- | - By clicking on an API method, the page will show more information | + | |
- | | + | < |
- | - Clicking | + | {" |
+ | " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Release 6.2.4.x History ===== | ||
+ | | ||
+ | * Version 6.2.4.185 | ||
+ | * [ TFS 41605 / 58429 ] - The Inventory Changes end point has been enhanced to include changes in the stock level, not just the changes inventory records. The End Point will now include the changes made by Purchase Orders and Sales Invoices. | ||
+ | * Version 6.2.4.141 - October 2, 2020 | ||
+ | * [ TFS 40116 ] - Web API: Added Logging information to the Web API Service to help determine the root cause of some runaway processes on the cloud. | ||
+ | * Version | ||
+ | * [ TFS 36512 ] - The / | ||
+ | * Version 6.2.4.80 - July 6, 2020 | ||
+ | * [ TFS 37259 ] - Web API Fix: to Inventory Changes endpoint to ensure proper functionality | ||
+ | | ||
+ | * [ TFS 31992 / 58075 ] Web API Fix: to include an email in the / | ||
+ | * Version 6.2.4.10 – April 2, 2020 | ||
+ | * [ TFS 33670 / 58200 ] Web API Fix: eCommerceExport=Y filter was not working for / | ||
+ | |||
+ | ===== Release 6.2.2.x History ===== | ||
+ | * Review further [[https:// | ||
+ | * Version 6.2.2.636 – March 12, 2020 | ||
+ | * [ TFS 32447 / 58176 ] The Inventory/ End Point methods now accepts | ||
+ | * Version 6.2.2.632 – March 12, 2020 | ||
+ | * TFS 32056 / 58157 ] Corrected | ||
+ | * Version 6.2.2.631 – March 3, 2020 | ||
+ | | ||
+ | * Version 6.2.2.596 – January 30, 2020 | ||
+ | * [ TFS 17171 / 57749 ] Fix on / | ||
+ | * Version 6.2.2.546 – December 2, 2019 | ||
+ | * [TFS 22644 / 57862] Corrected the way Tax Areas are assigned when using the deprecated / | ||
+ | * Version 6.2.2.540 – November 26, 2019 | ||
+ | * [TFS 19490 / BZ 57767] Added Web Comment support to the / | ||
+ | * Version 6.2.2.536 – November 20, 2019 | ||
+ | * [BZ 57751 / TFS 19694] Corrected the cause of the crashing by preventing the API from returning all of the invoices when the ZERO parameter is passed. The API now returns nothing in that case. Added 2 new methods to address the need to obtain more than one invoice from the API in a single call. | ||
+ | * Version 6.2.2.535 – November 20, 2019 | ||
+ | * [57691/TFS 19695] Two new endpoints have been added to the S5WebAPI to provide faster and more efficient access to the information provided by the Record State Tracking feature. | ||
+ | * GET [[webapi:examples:customer_changes|Customer/ | ||
+ | * GET [[webapi: | ||
+ | | ||
+ | * [TFS 20705] Fix for S5WebAPISvc that was broken due to new data collector list load. | ||
+ | * Version 6.2.2.491 – September 17, 2019 | ||
+ | *[57680] Corrected a problem that prevented the pagination from working correctly in the Inventory End Point with S5WebAPI service. | ||
+ | * Version 6.2.2.474 – September 6, 2019 | ||
+ | * [57690] Updated the logging to Log Analytics to better report the start and finish of each API call. | ||
+ | * Version 6.2.2.441 – July 15, 2019 | ||
+ | * [57554] Corrected a problem in the \addInvoice method of the S5WebAPISvc's Invoice endpoint. In previous versions, the Billing | ||
+ | * Version 6.2.2.400 – June 10, 2019 | ||
+ | * [57332] Added KitType, Weight, Instock by Dept, SaleStart, SaleEnd, AltSuply, and Barcodes information to the GET /Inventory endpoint of the S5WebAPI | ||
+ | * [56751] The ability to populate Alt Supply records and Barcode records is now supported in the GET /Inventory endpoint. | ||
+ | * AltSupply: | ||
+ | * Barcodes: This is a structure that must be populated in order to create the desired record and association with the Inventory record. The Swagger documentation contains a complete and detailed model of the required fields and their purposes. | ||
+ | * Version 6.2.2.395 – June 4, 2019 | ||
+ | * [57350] The S5WebAPI | ||
+ | * [57267] An e-Commerce filter has been added to the /Inventory endpoint of the S5WebAPI. | ||
+ | | ||
+ | * Version 6.2.2.369 – May 7, 2019 | ||
+ | * [57327] Added " | ||
+ | * Version 6.2.2.278 – February 26, 2019 | ||
+ | * [56852] Added support for billing and shipping account lookup by account details with Invoice-AddInvoice endpoint for S5WebAPI. | ||
+ | * Version 6.2.2.269 – February 14, 2019 | ||
+ | * [56999] Added pagination to the Inventory, Virtual Inventory, Customer and A/P Bill endpoints to eliminate calls that exceed the maximum number of records that the S5WebAPISvc can handle. | ||
+ | * Version 6.2.2.214 – November 30, 2018 | ||
+ | * [56482] Found and solved a problem when the API is passed an invalid Department value. | ||
+ | * Version 6.2.2.211 - December 27, 2018 | ||
+ | * [56750] Removed | ||
+ | | ||
+ | * [56391] WebAPI: Fixed fields not getting updated in Customer methods. | ||
+ | * [56404] WebAPI: Fixed errors when calling Insert_Invoice_Lines and Delete_Full_Invoice. | ||
+ | * Version 6.2.2.183 | ||
+ | * [56351] WebAPI: Fixed fields not getting updated when using the Suppliers_Update call. | ||
+ | * [56372] | ||
+ | * Version 6.2.2.182 | ||
+ | * [54843] WebAPI: Added support for the needed fields for the Virtual Inventory WebAPI methods. | ||
+ | * Version 6.2.2.181 | ||
+ | * [56047] WebAPI: Fixed broken legacy calls, unexposed Put calls, and updated Swagger documentation. | ||
+ | * [56349] WebAPI: Fixed Get_Superseding_Parts to properly return an array of superseding parts. | ||
+ | * Version 6.2.2.180 | ||
+ | * [56191] WebAPI: Added the Swagger-Publishing subfolder to the client bin to support the Swagger documentation for the S5WebAPI. | ||
+ | | ||
+ | * [56335] WebAPI: Port System Five WebAPI service (S5WebAPISvc) to Release. | ||
+ | * Version 6.2.2.178 | ||
+ | * [56020] WebAPI: Made the WebAPI aware of the data version it is connecting to, only connecting to data version it was compiled with. Swagger documents now show the data version number. | ||
+ | * [56242] WebAPI: Added support to the Invoice endpoint for Keywords on Invoice Lines. | ||
+ | * [56268] WebAPI: Added Big Rock Quantity lookup to Part Find. | ||
+ | * [55003] WebAPI: Solved the problems with the Change_Invoice_Type and Perform_Stock_Adjustment endpoints. | ||
+ | * Version 6.2.2.175 | ||
+ | * [56297] WebAPI: Get_Part_Prices call would now acknowledge the set Effective Date. | ||
+ | * Prior to 6.2.2.175 the Web API has a maximum limit of 32 concurrent connections. This limit has been removed and is now limited by how much available memory (max 4GB as this is a 32-bit service) running the API. | ||
+ | * Version 6.2.2.172 - July 24, 2018 | ||
+ | * [55894] Web API: Fixed the Get_Customer_By_Email POST method. | ||
+ | * Version 6.2.2.168 | ||
+ | * [54843] Web API: Added support for the needed fields for the Virtual Inventory Web API methods. | ||
+ | * [54703] Web API: Fixed the Get_Parts POST method to return the list of linked Free Form Comments. | ||
+ | * Version 6.2.2.163 | ||
+ | * [55777] WebAPI: The Part Image fetch is now constrained to accept a single part unique at a time. This is required to prevent | ||
+ | * Version 6.2.2.161 | ||
+ | * [55898] WebAPI: The Customer, Supplier, and Invoice List endpoints have been updated to POST Commands that accept a Body containing the Field and/or Filter items. | ||
+ | * Version 6.2.2.160 | ||
+ | * [55895] WebAPI: Fixed the Get_Parts POST method to return the list of linked Lookup Words. | ||
+ | * [55924] WebAPI: Polaris Dealers can now select the System Five Supplier that their Polaris Parts are linked to for the purposes of reporting to the Process Parts Inventory feature of the Polaris integration. | ||
+ | * Version 6.2.2.154 | ||
+ | * [55313] Cloud WebAPI: Solved blank field issues. | ||
+ | * [55859] WebAPI: Fixed an access violation error when importing inventory with the S5WebAPI and seasonal highs / lows enabled in System Five. | ||
+ | * Version 6.2.2.150 - April 26, 2018 | ||
+ | * [55692] Solve the User/ | ||
+ | * Version 6.2.2.148 | ||
+ | * [54977] The Inventory Value reporting is now exposed through the S5WebAPISvc. | ||
+ | |||
+ | |||
+ | ===== Beta 6.2.7.x History ===== | ||
+ | There can be functionality available in our beta that will not be present in our released product. | ||
+ | * Version 6.2.7.696 - December 9, 2020 | ||
+ | * [ TFS 41605 / 58429 ] - The Inventory Changes end point has been enhanced to include changes in the stock level, not just the changes inventory records. The End Point will now include the changes made by Purchase Orders | ||
+ | * Version 6.2.7.615 - August 14, 2020 | ||
+ | | ||
+ | * Version 6.2.7.562 – April 28, 2020 | ||
+ | * [ TFS 34807 ] Fix for /AddInventory endpoint in S5webapi not updating list price. (Beta only) | ||
+ | * Version 6.2.7.530 – March 25, 2020 | ||
+ | | ||
+ | * Version 6.2.7.524 – March 17, 2020 | ||
+ | * TFS 31638 Updated S5WebAPI Invoice endpoint to accept invoice line comments. | ||
+ | * Version 6.2.7.517 – March 11, 2020 | ||
+ | * [ TFS 32056 / 58157 ] Corrected the Insert of new Inventory by the S5WebAPISvc to deal with situations where the Item, Part and Supplier Part are all different in a data set. This is not a typical configuration and the system was not handling the lookup | ||
+ | * [ TFS 32447 / 58176 ] The Inventory/ End Point methods now accepts a Department Parameter to reduce the volume | ||
+ | * Version 6.2.7.425 – December 2, 2019 | ||
+ | * [TFS 22644 / 57862] Corrected the way Tax Areas are assigned when using the deprecated / | ||
+ | | ||
+ | * [TFS 20705] Fix for S5WebAPISvc that got broken due to new data collector list load. | ||
+ | * Version 6.2.7.418 – November 26, 2019 | ||
+ | * [TFS 19490 / BZ 57767] Added Web Comment support to the / | ||
+ | * Version 6.2.7.415 – November 21, 2019 | ||
+ | * [57691/TFS 19695] Two new endpoints have been added to the S5WebAPI to provide faster | ||
+ | * GET [[webapi: | ||
+ | * GET [[webapi: | ||
+ | * Version 6.2.7.414 – November 21, 2019 | ||
+ | * [BZ 57751 / TFS 19694] Corrected | ||
+ | * Version 6.2.7.396 – October 29, 2019 | ||
+ | * [TFS 20705] Fix for S5WebAPISvc that was broken due to a new data collector list load. | ||
+ | * Version 6.2.7.360 – September 11, 2019 | ||
+ | * [57680] Corrected a problem that prevented | ||
+ | * Version 6.2.7.351 – September 6, 2019 | ||
+ | * [57690] Updated the logging | ||
+ | * Version 6.2.7.309 – July 15, 2019 | ||
+ | * [57554] Corrected a problem in the \addInvoice method | ||
+ | | ||
+ | * [[: | ||
+ | * Version 6.2.7.265 – June 6, 2019 | ||
+ | * [57332] Added KitType, Weight, Instock by Dept, SaleStart, SaleEnd, AltSuply, and Barcodes information to the GET /Inventory endpoint of the S5WebAPI. | ||
+ | * [56751] The ability to populate Alt Supply records and Barcode records is now supported in the GET /Inventory endpoint. | ||
+ | * AltSupply: | ||
+ | * Barcodes: This is a structure that must be populated in order to create the desired record and association | ||
+ | * Version 6.2.7.261 – June 4, 2019 | ||
+ | * [57350] The S5WebAPI /Inventory endpoint now includes the web comment data. | ||
+ | | ||
+ | * [56767] Virtual Warehouse is now considered by the S5WebAPI and the behavior is consistent with System Five. | ||
+ | * Version 6.2.7.251 – May 28, 2019 | ||
+ | * [57216] Added logging audit to S5WebAPI. | ||
+ | * Version 6.2.7.248 – May 24, 2019 | ||
+ | * [57425] Added additional logging to the web API when audit is enabled. | ||
+ | * Version 6.2.7.223 – May 1, 2019 | ||
+ | * [57327] Added " | ||
+ | * Version 6.2.7.157 – February 28, 2019 | ||
+ | | ||
+ | |||
+ | ===== Common Errors/ | ||
+ | Best practices when troubleshooting errors or issues for escalation with engineering or another technician. | ||
+ | * Check the logs and capture the specific error message text (with an export of the logs or screenshot) | ||
+ | * Capture the complete S5webapi INI file settings | ||
+ | * Any other relevant information such as the operating systems (Are windows updates applied) | ||
+ | |||
+ | |||
+ | ** Getting POS Failure! {" | ||
+ | |||
+ | Reasons : | ||
+ | The JSON that is being used is invalid. | ||
+ | |||
+ | Only 1 InvoiceLines Array is allowed. | ||
+ | The Description must only have 255 characters MAXIMUM! The database will throw away anything longer. | ||
+ | The Invoice Comment must not contain invalid characters. (Carriage Returns | ||
+ | |||
+ | Additional information: | ||
+ | You do not need to include | ||
+ | One or the other is all that is required. If you know the Unique Numbers, use them. The system will ignore InvoiceShipping and InvoiceBilling data. | ||
+ | If you don’t, then use the InvoiceShipping and InvoiceBilling. The system | ||
+ | |||
+ | Here is what it should look like: | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | You can prevent all of these problems by simply checking the JSON payload in a JSON editor like: | ||
+ | https:// | ||
+ | |||
+ | |||
+ | ** Adding Newline Feed on Invoice Comment ** | ||
+ | |||
+ | In / | ||
+ | |||
+ | To add a new line feed, add this \\n in the comment. | ||
+ | |||
+ | ** Access Violation when making API call ** | ||
+ | |||
+ | When troubleshooting the s5webAPI | ||
+ | |||
+ | |||
+ | **Getting a User Security Error on WordsToo.btr** | ||
+ | |||
+ | If you are presented with a "User # Security Error on WordsToo.btr. User Record has been tampered with" message. | ||
+ | |||
+ | The reason for this error message is due to the user account being locked out or expired and the S5webapi is trying to login using those credentials. | ||
+ | |||
+ | To resolve this issue: | ||
+ | - Go to Setup Wizard > Users and Security > Go to user # (It is the WEB API log in) | ||
+ | - Uncheck | ||
+ | - Ensure the password is the same in the WebAPI.INI configuration | ||
+ | - Restart the S5WebAPI | ||
+ | - Optionally test the S5WebAPI using swagger if configured | ||
+ | |||
+ | |||
+ | **LogAnaylytics: | ||
+ | |||
+ | This happens when the Log Analytics workspace is unreachable. The API service keeps trying to connect to the workspace which causes it to use too much CPU on the client' | ||
+ | |||
+ | As a workaround, we removed the Log Analytics argument from the ini file. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Once it is removed, CPU usage goes back to normal. | ||
webapi_swagger_documentation.1540316258.txt.gz · Last modified: 2018/10/23 10:37 (6 years ago) by kevin