Cách giả mạo API của bên thứ ba
Ứng dụng của chúng tôi thực hiện lệnh gọi tới API của bên thứ ba để hoàn thành một số tác vụ.
Điểm cuối này gặp sự cố trong môi trường thử nghiệm và ban quản lý đã yêu cầu chúng tôi mô phỏng môi trường này để khi ứng dụng hoặc bất kỳ ai cố gắng gọi www.test.com từ máy thử nghiệm, nó sẽ nhận được thông tin từ một máy chủ giả chứ không phải www thực tế. .test.com .
Tôi đã cố gắng tìm ra các tùy chọn khác nhau nhưng mọi thứ đều giả tạo nếu chúng ta tạo một đối tượng giả và sau đó gọi đối tượng giả.
Tôi đang cố gắng tìm ra cách mà bất cứ khi nào ai đó gọi www.test.com, nó sẽ hiển thị nội dung từ localhost.
Tôi không muốn chỉnh sửa tệp máy chủ lưu trữ. Còn cách nào khác không?
Cập nhật:
Đã làm cho ứng dụng có thể định cấu hình, vì vậy chúng tôi có thể chỉ định điểm cuối mà ứng dụng sẽ gọi.
Tôi đã sử dụng Mockserver trong bưu tá để mô phỏng điều này. Nhưng lệnh postmand không hỗ trợ tham số truy vấn
vì vậy đối với v1 / api? q = 1 và v1 / api? q = 2 nó trả về cùng một phản hồi
Ai đó có thể giúp làm thế nào để tạo một mockserver cung cấp phản hồi khác nhau cho parmaeter truy vấn khác nhau không
Trả lời
Chúng tôi có một trải nghiệm tốt với json-server. Chúng tôi thấy nó thực sự linh hoạt.
Nhận một API REST giả đầy đủ mà không cần mã hóa trong vòng chưa đầy 30 giây (nghiêm túc)
Được tạo với <3 dành cho các nhà phát triển front-end, những người cần back-end nhanh để tạo mẫu và mô phỏng.
https://github.com/typicode/json-server
Nó có thể phục vụ từ các tệp json tĩnh, trong đó mỗi ID trả về một giá trị khác nhau. Hoặc bạn có thể sử dụng JavaScript để tạo chúng. Bạn có thể thay đổi dữ liệu dựa trên id, cung cấp dữ liệu ngẫu nhiên, xoay bộ dữ liệu, v.v.
Họ cũng có một phiên bản được lưu trữ cho bạn nếu bạn muốn thử nghiệm qua internet. Bộ dữ liệu nhỏ miễn phí:https://my-json-server.typicode.com/
According to Postman docs:
If there is no exact match found, Postman will return the best matching response based on its algorithm.
I have tested the mock server and it does work with query parameters, however the algorithm points to a default value when you do not mock the parameter. In my case:
?id=1 points to 200 with ok page
?id=2 points to 404 with bad request page
?id=3 and so on is not implemented and mock server returns the 200 with ok page.
If you accept mocking with other packages than Postman, then I suggest using MockServer or WireMock, both having support for describing matching rules in Java and JSON.
For instance, with WireMock you can match HTTP Request by URL and query string as follows:
Regex matching on path and query
Java:
urlMatching("/your/([a-z]*)\\?and=query")JSON:
{ "request": { "urlPattern": "/your/([a-z]*)\\?and=query" ... }, ... }
Can you set up env params and then use those to control which apis your app talks to? You could use that to easily set development, test and production api addresses.