-
Notifications
You must be signed in to change notification settings - Fork 47
How do I mock the Post/Put/Delete data? #24
Comments
I'm not sure what you mean. Mock data isn't for a particular kind of request (get, post, put, etc.). It's just data. A GET request retrieves that data. A POST request inserts new data. A PUT request updates existing data. A DELETE request deletes existing data. |
Thanks @BigstickCarpet for your comment. I mean in some special cases, I send a POST request, for example, I Post to create a new Pet, in the response, there is a field saying the status for this pet. I just care about the "status" field in the response. For this case, I want to mock this response and I don't care whether I can create the pet or not in the server. So, my question is :how can I mock this Post response in the swagger-server like we Mock the "GET" response? |
If you want to return a different response than the default behavior, then you can add your own middleware to do so. server.post('/pets/{petName}', function(req, res, next) {
res.json({status: 'created successfully'});
} |
Thanks @BigstickCarpet ! It works fine and I can mock the data what I want now. Just have one another question, I want to change the default behavior of swagger-server: If I send a 'get' request, and the response is empty, then I want to use the example value as the response. You know in the swagger-ui project, it can generate the example values via the swagger model definition, do you know how or where |
@feikiss - Glad to hear that it's working for you now. And yes, Swagger Server has built-in support for |
Yes @BigstickCarpet ,the default or example value in Swagger file can be used in Swagger Server, but it does not fit my requirement... I do not define the default value, but I want to send back the mock response via the schema definition... For example,the following is the schema definition in the response.
and I'd like to send back the following value(also you can refer to the screen-shot attached) :
It is generated by the Swagger-UI, and I want to use it as the default value. Not sure whether we can integrated in the swagger-server, but I think there should be some possible way.. Thanks. |
There are two ways that you can do this. The first, is to add the default to your schema: "definitions" : {
"ActionVO" : {
"type" : "object",
"properties" : {
"id":{
"type" : "string"
},
"name" : {
"type" : "string"
},
"state" : {
"type" : "string"
},
"default": {
"id": "456XYZ",
"name": "John Doe",
"state": "California"
} The second is to write your own middleware to return whatever value you want: server.post('/pets/{petName}', function(req, res, next) {
res.json({
id: "456XYZ",
name: "John Doe",
status: 'California'
});
} |
Thanks @BigstickCarpet so much, It works! |
In sample2, I can find the usage about how to prepare the Mock data for the Get request which seems very simple and easily. I want to know how can I prepare the mock data for POST/Put/Delete request in the same way with Sample 2?
like this:
var myData = [
{collection: '/pets', name: '/Lassie', data: {name: 'Lassie', type: 'dog1'}},
{collection: '/pets', name: '/Clifford', data: {name: 'Clifford', type: 'dog'}},
{collection: '/pets', name: '/Garfield', data: {name: 'Garfield', type: 'cat'}},
{collection: '/pets', name: '/Snoopy', data: {name: 'Snoopy', type: 'dog'}}
]
server.dataStore.save(Resource.parse(myData));
Any comment is appreciated!
Thanks,
Flyli
The text was updated successfully, but these errors were encountered: