Εγγυημένα παραδείγματα: GET, POST, PUT, PATCH, DELETE

Αυτή η ανάρτηση εξηγεί τον τρόπο αποστολής αιτημάτων HTTP API χρησιμοποιώντας βιβλιοθήκη με εγγύηση REST. Παραδείγματα καλύπτουν GET, POST, PUT, PATCH και DELETE αιτήσεων.



Αιτήματα API HTTP με εγγύηση REST

Λήψη αιτήματος

Το αίτημα HTTP GET χρησιμοποιείται για τη λήψη ενός πόρου από έναν διακομιστή.

Το ακόλουθο παράδειγμα χρησιμοποιεί το get() μέθοδος από βιβλιοθήκη με εγγύηση REST.


Παράδειγμα:

import io.restassured.RestAssured; import io.restassured.http.ContentType; import io.restassured.response.Response; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; public class RestAssuredRequests {
@BeforeAll
public static void setup() {
RestAssured.baseURI = 'https://jsonplaceholder.typicode.com';
}
@Test
public void getRequest() {
Response response = given()


.contentType(ContentType.JSON)


.when()


.get('/posts')


.then()


.extract().response();

Assertions.assertEquals(200, response.statusCode());
Assertions.assertEquals('qui est esse', response.jsonPath().getString('title[1]'));
} }

Λάβετε αίτημα με παραμέτρους ερωτήματος

Για την αποστολή παραμέτρων ερωτήματος μαζί με το αίτημα GET, χρησιμοποιούμε το queryParam μέθοδος:


import io.restassured.RestAssured; import io.restassured.http.ContentType; import io.restassured.response.Response; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; public class RestAssuredRequests {
@BeforeAll
public static void setup() {
RestAssured.baseURI = 'https://jsonplaceholder.typicode.com';
}
@Test
public void getRequestWithQueryParam() {
Response response = given()


.contentType(ContentType.JSON)


.param('postId', '2')


.when()


.get('/comments')


.then()


.extract().response();

Assertions.assertEquals(200, response.statusCode());
Assertions.assertEquals('Meghan_Littel@rene.us', response.jsonPath().getString('email[3]'));
} }

Αίτημα POST

Το αίτημα HTTP POST χρησιμοποιείται για τη δημοσίευση δεδομένων ή τη δημιουργία πόρου σε διακομιστή.

Για να στείλουμε ένα αίτημα POST με εγγύηση REST, χρησιμοποιούμε το post() μέθοδος:

import io.restassured.RestAssured; import io.restassured.response.Response; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; public class RestAssuredRequests {
private static String requestBody = '{ ' +

' 'title': 'foo', ' +

' 'body': 'bar', ' +

' 'userId': '1' }';
@BeforeAll
public static void setup() {
RestAssured.baseURI = 'https://jsonplaceholder.typicode.com';
}
@Test
public void postRequest() {
Response response = given()


.header('Content-type', 'application/json')


.and()


.body(requestBody)


.when()


.post('/posts')


.then()


.extract().response();

Assertions.assertEquals(201, response.statusCode());
Assertions.assertEquals('foo', response.jsonPath().getString('title'));
Assertions.assertEquals('bar', response.jsonPath().getString('body'));
Assertions.assertEquals('1', response.jsonPath().getString('userId'));
Assertions.assertEquals('101', response.jsonPath().getString('id'));
} }

Σχετιζομαι με:

Αίτημα PUT

Το αίτημα PUT ενημερώνει έναν πόρο, αλλά απαιτεί το πλήρες ωφέλιμο φορτίο JSON.


Για να στείλετε ένα αίτημα PUT στο REST-assured, χρησιμοποιούμε το put() μέθοδος:

import io.restassured.RestAssured; import io.restassured.response.Response; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; public class RestAssuredRequests {
private static String requestBody = '{ ' +

' 'title': 'foo', ' +

' 'body': 'baz', ' +

' 'userId': '1', ' +

' 'id': '1' }';
@BeforeAll
public static void setup() {
RestAssured.baseURI = 'https://jsonplaceholder.typicode.com';
}
@Test
public void putRequest() {
Response response = given()


.header('Content-type', 'application/json')


.and()


.body(requestBody)


.when()


.put('/posts/1')


.then()


.extract().response();

Assertions.assertEquals(200, response.statusCode());
Assertions.assertEquals('foo', response.jsonPath().getString('title'));
Assertions.assertEquals('baz', response.jsonPath().getString('body'));
Assertions.assertEquals('1', response.jsonPath().getString('userId'));
Assertions.assertEquals('1', response.jsonPath().getString('id'));
} }

Αίτημα PATCH

Το αίτημα PATCH ενημερώνει έναν πόρο, αλλά απαιτεί μόνο τα πεδία που ενημερώνονται στο ωφέλιμο φορτίο:

import io.restassured.RestAssured; import io.restassured.response.Response; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; public class RestAssuredRequests {
private static String requestBody = '{ ' +

' 'title': 'bax' }';
@BeforeAll
public static void setup() {
RestAssured.baseURI = 'https://jsonplaceholder.typicode.com';
}
@Test
public void patchRequest() {
Response response = given()


.header('Content-type', 'application/json')


.and()


.body(requestBody)


.when()


.patch('/posts/1')


.then()


.extract().response();

Assertions.assertEquals(200, response.statusCode());
Assertions.assertEquals('bax', response.jsonPath().getString('title'));
Assertions.assertEquals('1', response.jsonPath().getString('userId'));
Assertions.assertEquals('1', response.jsonPath().getString('id'));
} }

Σχετιζομαι με:

ΔΙΑΓΡΑΦΗ Αίτημα

Το αίτημα DELETE χρησιμοποιείται για τη διαγραφή ενός πόρου από έναν διακομιστή.


Για να στείλετε ένα αίτημα ΔΙΑΓΡΑΦΗΣ στο REST-assured, χρησιμοποιούμε το delete() μέθοδος:

import io.restassured.RestAssured; import io.restassured.response.Response; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; public class RestAssuredRequests {
@BeforeAll
public static void setup() {
RestAssured.baseURI = 'https://jsonplaceholder.typicode.com';
}
@Test
public void deleteRequest() {
Response response = given()


.header('Content-type', 'application/json')


.when()


.delete('/posts/1')


.then()


.extract().response();

Assertions.assertEquals(200, response.statusCode());
} }