sanskarix 6 hours ago

Great tool! The shell script approach for dynamic responses is really clever - much simpler than spinning up language-specific frameworks. I can see this being super useful in CI/CD pipelines where you need lightweight mocking without dependencies.

This might be a little off topic but since this thread has people interested in SaaS and tech tools, how do you guys launch on Product Hunt? Curious to learn from your strategies.

BinaryIgor a day ago

Interesting, a few questions: 1. How hard/easy is it to make responses dynamic, i.e. to use something from the request data like query/path param or a body to execute function instead of hardcoding the response 2. What's the main motivation for creating this tool? I feel like every programming language have similar tool already - WireMock for Java etc. Why should people switch?

  • dhuan_ a day ago

    Hi thanks for the feedback checking out the project.

    > What's the main motivation for creating this tool?

    Similar tools exist out there for sure, but they are either complex (more than I wish they'd be) or somehow require you to use a specific programming languages. Mock lets you accomplish this without telling you which language you should use.

    Also if you're using mock inside CI pipelines, it also helps the fact that you can just download a executable tool that does not require you the java platform or any other dependency.

    > How hard/easy is it to make responses dynamic, i.e. to use something from the request data like query/path param or a body to execute function instead of hardcoding the response

    With mock you can use shell scripts as "request handlers". With that said, capturing a query param or a JSON field from the request body is as simple as:

    > $ USER_NAME=$(mock get-payload user.name)

    > $ SOME_QUERY_STRING_PARAM=$(mock get-query foo)

    You can see more of this topic here: https://dhuan.github.io/mock/shell_scripts.html

    > I feel like every programming language have similar tool already - WireMock for Java etc. Why should people switch?

    True. If people are happy with these tools and needing to use java (or any other lang the tool pulls you into), then there's not much reason to switch.

calrain a day ago

It frustrates me no end when large commercial web sites fail to store state in URLs. It should be updated when the user clicks the 'submit' button of a page, especially when related to searching.

Some products have these fancy KQL style search parameters but if you forget to 'save the search' within the applications 'Save Search' facility, then when you duplicate a tab the search is lost.

It feels rude when sites ignore the UX improvement by not leveraging the power of URLs to store current state.

siva7 a day ago

> Making an existing API slow can be easily accomplished combining mock’s Base APIs and the delay option.

Ah, it's the "billable hours" variable.

a2800276 a day ago

Wonderful little tool! Something similar has been swirling aronud my head for a while. Thank you for sharing, it looks very useful.

  • dhuan_ a day ago

    Hi, thanks for the feedback! I hope it's useful to you.

cozzyd a day ago

the name mock has also been used for the RPM build environment tool (https://github.com/rpm-software-management/mock)

  • dhuan_ a day ago

    Hi, thanks for the feedback!

    That's true, it's not a very unique name. I started building it, but only months later I thought of making it public. And then never thought of renaming it.

ruguo a day ago

Does it support Windows? I don’t see a Windows version on the GitHub releases page.

  • dhuan_ a day ago

    Hi! Not yet, unless you use it with containers.

  • n0n0n4t0r a day ago

    With wsl (or docker desktop), for non production tooling, I don't think it's relevant anymore.

    (I'm not saying it's on par with linux, I'm just saying it's usable)

fhduksbegd a day ago

How does this differ from swagger?

  • dhuan_ a day ago

    Swagger is a tool for API design and documentation.

    Mock on the other hand is an actual API creation utility with which you can define endpoints, execute some logic for each endpoint and then return some data to the client. There are other similar features which are covered in the user guide.

    Mock is not: - A tool for API Specs or documentation - A GUI tool.

    I admit explaining the usefulness of this tool is not the easiest thing.

    Any feedback is welcome!

hnBTsd 21 hours ago

What a great tool! Writing simple scriptable mock apis all for the command line. Very easy to include commands straight into documentation.