Deleting data from data sources
(Enterprise customers only) Hoverfly Cloud supports the use of CSV data sources so that you can do key value data lookups and simulate persistence within your simulations.
Deleting data from a CSV Data Source
You can delete data from a CSV data source on the fly within your simulation just as if your API were deleting data from a real data source. The data is removed for the duration that the service is running. When the service is restarted, the data will revert to what was in the original uploaded CSV.
There are two ways to delete data.
Using the {{csvDeleteRows}} function which will delete rows where a specified column matches a specified value
Using the {{csvSqlCommand}} function which allows you to use a SQL like syntax to issue a DELETE SQL command which allows more conditions to be matched than csvDeleteRows.
For illustration we will use this data source called "pets":
id | category | name | status |
---|---|---|---|
1000 | birds | Archie | available |
1001 | dogs | Zipper | available |
1002 | dogs | Teddy | sold |
Method 1: Delete data with {{csvDeleteRows}}
This method deletes data where a column matches a value that you specify. It can also optionally return the number of rows deleted into the template, or into another function wrapping it.
Syntax:
Template Example: Delete all birds and don't return the count
Result:
In this case there will be no output from csvDeleteRows but the data in memory for all subsequent calls to the API simulation will be modified as follows:
id | category | name | status |
---|---|---|---|
1001 | dogs | Zipper | available |
1002 | dogs | Teddy | sold |
If the output-result flag had been set to true, then the function would have had the following output:
Method 2: Delete data with {{csvSqlCommand}}
A simplified SQL like syntax can be used to delete the data in a csv data source. (This syntax can also be used to SELECT and UPDATE from the data source. You cannot insert using this syntax however there is a mechanism which can be read about here.)
You can read more about using this SQL like syntax here.
Syntax:
Template Example: Delete all dogs whose ids are greater than 1001
Result:
There is no output from a SQL DELETE statement but the data in memory for all subsequent calls to the API simulation will be modified as follows:
id | category | name | status |
---|---|---|---|
1000 | birds | Archie | sold |
1001 | dogs | Zipper | available |
s
Last updated