Üçüncü taraf bir API nasıl yanıltılır?
Uygulamamız, birkaç görevi tamamlamak için üçüncü taraf bir API'ye çağrı yapar.
Bu uç noktanın test ortamında bir sorunu var ve yönetim bizden bu ortamla dalga geçmemizi istedi, böylece uygulama veya herhangi biri test makinesinden www.test.com'u aramaya çalıştığında , gerçek www yerine sahte bir sunucudan bilgi alıyor .test.com .
Farklı seçenekler bulmaya çalıştım ama sahte bir nesne oluşturup sonra sahte nesneyi çağırırsak her şey alay ediyor.
Birisi www.test.com'u aradığında localhost'tan içerik göstermesi için bir yol bulmaya çalışıyorum .
Ana bilgisayar dosyasını düzenlemek istemiyorum. Başka bir yolu var mı?
Güncelleme:
Uygulamayı yapılandırılabilir hale getirdi, böylece uygulamanın hangi uç noktayı çağırması gerektiğini belirleyebiliriz.
Bunu simüle etmek için postacıda Mockserver kullandım. Ancak postmand sorgu parametresini desteklemiyor
yani v1 / api? q = 1 ve v1 / api? q = 2 için aynı yanıtı verir
Birisi, farklı sorgu parametreleri için farklı yanıtlar veren bir sahte sunucu oluşturmaya yardımcı olabilir mi?
Yanıtlar
Json-server ile iyi bir deneyimimiz var. Gerçekten esnek bulduk.
30 saniyeden daha kısa sürede sıfır kodlama ile tam sahte bir REST API edinin (cidden)
Prototip oluşturma ve alay için hızlı bir arka uca ihtiyaç duyan ön uç geliştiriciler için <3 ile oluşturulmuştur.
https://github.com/typicode/json-server
Her bir kimliğin farklı bir değer döndürdüğü statik json dosyalarından sunucu oluşturabilir. Veya bunları oluşturmak için JavaScript kullanabilirsiniz. Verileri kimliğe göre değiştirebilir, rastgele veri verebilir, veri kümelerini döndürebilirsiniz vb.
İnternet üzerinden test etmek istiyorsanız, sizin için barındırılan bir sürümleri de vardır. Küçük veri kümeleri ücretsizdir:https://my-json-server.typicode.com/
Postacı belgelerine göre :
Tam eşleşme bulunamazsa, Postman algoritmasına bağlı olarak en iyi eşleşen yanıtı döndürür.
Sahte sunucuyu test ettim ve sorgu parametreleriyle çalışıyor, ancak parametreyle alay etmediğinizde algoritma varsayılan bir değere işaret ediyor. Benim durumumda:
?id=1işaret 200ile oksayfa
?id=2noktalarına 404ile bad requestsayfa
?id=3ve benzeri uygulanmadı ve alay sunucu döndürür 200ile oksayfa.
Postman dışındaki diğer paketlerle alay etmeyi kabul ediyorsanız , MockServer veya WireMock kullanmanızı öneririm , her ikisi de Java ve JSON'da eşleşen kuralları açıklamak için destek sağlar.
Örneğin, WireMock ile HTTP İsteğini URL ve sorgu dizesiyle şu şekilde eşleştirebilirsiniz :
Yol ve sorguda normal ifade eşleşmesi
Java:
urlMatching("/your/([a-z]*)\\?and=query")JSON:
{ "request": { "urlPattern": "/your/([a-z]*)\\?and=query" ... }, ... }
Env parametrelerini ayarlayabilir ve bunları uygulamanızın hangi apis ile konuştuğunu kontrol etmek için kullanabilir misiniz? Bunu, geliştirme, test ve üretim api adreslerini kolayca ayarlamak için kullanabilirsiniz.