Karate DSL is extremely effective in those situations where you have a microservice still in development, but the \"consumer\" web-UI dev team needs to make progress. Just create a mock definition (feature) file, and since it is plain-text - it can easily be shared across teams via Git. Since Karate has a binary stand-alone executable, even teams that are not familiar with Java can use it to stand-up mock services. And the best part is that the mock serves as a \"contract\" - which the server-side team can use to practice test-driven development.","rawContent":"@{Karate DSL}|tool:10448| is extremely effective in those situations where you have a microservice still in development, but the \"consumer\" web-UI dev team needs to make progress. Just create a mock definition (feature) file, and since it is plain-text - it can easily be shared across teams via @{Git}|tool:1046|. Since Karate has a binary stand-alone executable, even teams that are not familiar with Java can use it to stand-up mock services. And the best part is that the mock serves as a \"contract\" - which the server-side team can use to practice test-driven development.","publishedAt":"2019-05-22T00:36:00Z","commentsCount":2,"private":false,"upvotesCount":18,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":469016,"draft":false,"createdAt":"2019-05-22T00:36:28Z","decisionType":null,"showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:102136898420135652.permissions","typename":"Permissions"},"subjectTools":[],"fromTools":[],"toTools":[],"link":{"type":"id","generated":true,"id":"$StackDecision:102136898420135652.link","typename":"Link"},"company":{"type":"id","generated":false,"id":"Company:101231709485446059","typename":"Company"},"topics":[],"stack":null,"services":[{"type":"id","generated":false,"id":"Tool:101690302870073732","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"}],"user":{"type":"id","generated":false,"id":"User:101458065489472473","typename":"User"},"rootComments":[{"type":"id","generated":false,"id":"Comment:102142467711171491","typename":"Comment"}],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:102136898420135652.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:102136898420135652.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"$StackDecision:102136898420135652.link":{"url":"https://stackshare.io/ptrthomas/the-worlds-smallest-micro-service","title":"The World's Smallest Micro Service - ptrthomas Tech Stack","imageUrl":"","__typename":"Link"},"Tool:101231773858546548":{"id":"101231773858546548","name":"Git","slug":"git","title":"Fast, scalable, distributed revision control system","verified":false,"imageUrl":"https://img.stackshare.io/service/1046/git.png","canonicalUrl":"/git","path":"/git","votes":6592,"fans":206791,"stacks":299293,"followingTool":false,"followContext":null,"__typename":"Tool"},"Comment:102142467711171491":{"id":"102142467711171491","content":"Interesting that you saw sharing via Git as a benefit. If I might tell my story:\nAt my previous company, we had great success with Postman and sharing APIs. It gave a strong contract-driven development loops, without having to touch the code bases.\nWhen it came time to switch to the real APIs, the front-end team just had to change a base URL.","postedAt":"2019-05-23T00:12:49Z","upvoted":false,"flagged":false,"upvotesCount":1,"parentId":null,"user":{"type":"id","generated":false,"id":"User:102142442177894048","typename":"User"},"__typename":"Comment","replies":[{"type":"id","generated":false,"id":"Comment:102143854155781780","typename":"Comment"}]},"User:102142442177894048":{"id":"102142442177894048","path":"/foxjstephen","imageUrl":"https://img.stackshare.io/user/296146/default_b23b71db44e64b21c23bfe05cdf589ac78636ae9.jpg","displayName":"Stephen Fox","__typename":"User"},"Comment:102143854155781780":{"id":"102143854155781780","content":"That works for some, but not for those who would like to keep all their artifacts WITHIN the firewall.","postedAt":"2019-05-23T06:05:24Z","upvoted":false,"flagged":false,"upvotesCount":0,"parentId":"102142467711171491","user":{"type":"id","generated":false,"id":"User:101458065489472473","typename":"User"},"__typename":"Comment"},"$StackDecision:102136898420135652.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:102136898420135652.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:102136898420135652.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231778470550636.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:102136898420135652","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"StackDecision:102027758015820922":{"id":"102027758015820922","publicId":"102027758015820922","htmlContent":"
As the maintainer of the Karate DSL open-source project - I found Travis CI very easy to integrate into the GitHub workflow and it has been steady sailing for more than 2 years now ! It works well for Java / Apache Maven projects and we were able to configure it to use the latest Oracle JDK as per our needs. Thanks to the Travis CI team for this service to the open-source community !","rawContent":"As the maintainer of the @{Karate DSL}|tool:10448| open-source project - I found @{Travis CI}|tool:460| very easy to integrate into the @{GitHub}|tool:27| workflow and it has been steady sailing for more than 2 years now ! It works well for @{Java}|tool:995| / @{Apache Maven}|tool:977| projects and we were able to configure it to use the latest Oracle JDK as per our needs. Thanks to the Travis CI team for this service to the open-source community !","publishedAt":"2019-05-02T18:00:00Z","commentsCount":0,"private":false,"upvotesCount":9,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":904424,"draft":false,"createdAt":"2019-05-02T18:00:38Z","decisionType":"giveAdvice","showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:102027758015820922.permissions","typename":"Permissions"},"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"}],"fromTools":[],"toTools":[],"link":{"type":"id","generated":true,"id":"$StackDecision:102027758015820922.link","typename":"Link"},"company":{"type":"id","generated":false,"id":"Company:101231709485446059","typename":"Company"},"topics":[],"stack":null,"services":[{"type":"id","generated":false,"id":"Tool:101690302870073732","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773830185558","typename":"Tool"}],"user":{"type":"id","generated":false,"id":"User:101458065489472473","typename":"User"},"rootComments":[],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:102027758015820922.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:102027758015820922.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"Tool:101231773636491087":{"id":"101231773636491087","name":"Travis CI","slug":"travis-ci","title":"A hosted continuous integration service for open source and private projects","verified":true,"imageUrl":"https://img.stackshare.io/service/460/Lu6cGu0z_400x400.png","canonicalUrl":"/travis-ci","path":"/travis-ci","votes":1749,"fans":9417,"stacks":26452,"followingTool":false,"followContext":null,"__typename":"Tool"},"$StackDecision:102027758015820922.link":{"url":"https://travis-ci.org/intuit/karate","title":"Travis CI - Test and Deploy Your Code with Confidence","imageUrl":"https://cdn.travis-ci.org/favicon-b4e438ec85b9ae88d26b49538bc4e5ce.png","__typename":"Link"},"$StackDecision:102027758015820922.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:102027758015820922.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:102027758015820922.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231778470550636.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.1":{"node":{"type":"id","generated":false,"id":"StackDecision:102027758015820922","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"$StackProfile:101231778470550636.otherStacks({\"first\":3})":{"count":0,"edges":[],"__typename":"StackConnection"},"$Company:101231709485446059.team({\"after\":null,\"first\":10})":{"count":4,"pageInfo":{"type":"id","generated":true,"id":"$Company:101231709485446059.team({\"after\":null,\"first\":10}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.0","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.1","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.2","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.3","typename":"UserEdge"}],"__typename":"UserConnection"},"$Company:101231709485446059.team({\"after\":null,\"first\":10}).pageInfo":{"hasNextPage":false,"endCursor":"NA","__typename":"PageInfo"},"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.0":{"node":{"type":"id","generated":false,"id":"User:101458065489472473","typename":"User"},"__typename":"UserEdge"},"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.1":{"node":{"type":"id","generated":false,"id":"User:101232023886310088","typename":"User"},"__typename":"UserEdge"},"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.2":{"node":{"type":"id","generated":false,"id":"User:101232088207943670","typename":"User"},"__typename":"UserEdge"},"$Company:101231709485446059.team({\"after\":null,\"first\":10}).edges.3":{"node":{"type":"id","generated":false,"id":"User:104712999982885777","typename":"User"},"__typename":"UserEdge"}}