{"id":13651847,"url":"https://github.com/friflo/vscode-friflo-post","last_synced_at":"2025-07-21T10:33:14.039Z","repository":{"id":176837246,"uuid":"409148553","full_name":"friflo/vscode-friflo-post","owner":"friflo","description":"HTTP Client for Visual Studio Code to POST JSON, XML, image, ... files to REST APIs","archived":false,"fork":false,"pushed_at":"2022-08-03T15:10:57.000Z","size":3144,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-08T07:48:38.008Z","etag":null,"topics":["http","http-client","json","json-schema","rest","rest-client","visual-studio-code","vscode","vscode-extension","xml"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=friflo.vscode-friflo-post","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/friflo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-09-22T09:51:52.000Z","updated_at":"2024-08-22T17:35:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"0a88a0e8-3f97-41e7-af77-7960666a78db","html_url":"https://github.com/friflo/vscode-friflo-post","commit_stats":null,"previous_names":["friflo/vscode-friflo-post"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/friflo/vscode-friflo-post","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2Fvscode-friflo-post","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2Fvscode-friflo-post/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2Fvscode-friflo-post/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2Fvscode-friflo-post/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/friflo","download_url":"https://codeload.github.com/friflo/vscode-friflo-post/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2Fvscode-friflo-post/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264396622,"owners_count":23601541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["http","http-client","json","json-schema","rest","rest-client","visual-studio-code","vscode","vscode-extension","xml"],"created_at":"2024-08-02T02:00:52.881Z","updated_at":"2025-07-21T10:33:14.021Z","avatar_url":"https://github.com/friflo.png","language":"TypeScript","funding_links":[],"categories":["GUI"],"sub_categories":[],"readme":"#           _friflo_ __POST__\r\n\r\n[![Marketplace Version](https://vsmarketplacebadge.apphb.com/version-short/friflo.vscode-friflo-post.svg)](https://marketplace.visualstudio.com/items?itemName=friflo.vscode-friflo-post) [![CodeQL](https://github.com/friflo/vscode-friflo-post/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/friflo/vscode-friflo-post/actions/workflows/codeql-analysis.yml)\r\n\r\n\r\n## Goal\r\nMain goal of this extension is storing all HTTP request \u0026 response data _automatically_ as files in a __VSCode workspace__.  \r\nThis ensures these files are still available in new VSCode sessions.\r\nIt also enables utilizing __VSCode build-in tools__ for request \u0026 response files.\r\nE.g. [__JSON Schema validation__](https://code.visualstudio.com/docs/languages/json#_json-schemas-and-settings)\r\nof JSON request \u0026 response files, storing them in __git__ and comparing subsequent response results with previous ones in\r\n[__VSCode Diff Viewer__](https://code.visualstudio.com/docs/editor/versioncontrol#_viewing-diffs).\r\n\r\n[GitHub repository link](https://github.com/friflo/vscode-friflo-post/)\r\n\r\n## Motivation\r\nThis project was created for [friflo/Friflo.Json.Fliox](https://github.com/friflo/Friflo.Json.Fliox) to validate requests send to a Fliox Hub.  \r\nMeanwhile validation is supported by the Hub Explorer itself. But will keep this project alive.\r\n\r\n\r\n## Features\r\n*   Send files in your workspace like JSON or XML via HTTP __POST__, __PUT__ \u0026 __PATCH__ with a single click on a __CodeLens__ button.  \r\n    E.g. `say-hello.test.json`\r\n*   Store HTTP responses like JSON or XML _automatically_ as files  in the workspace.  \r\n    E.g. `say-hello.test.resp.json`\r\n*   Store HTTP request / response header _automatically_ as a __markdown__ file in the workspace.  \r\n    E.g. `say-hello.test.resp.md`\r\n*   Enables utilizing __VSCode language validators__ like __JSON Schema__ to provide __Code Completion__ and __validation__\r\n    for request and response files.  \r\n*   Show and edit HTTP response directly in a separate workspace editor tab.\r\n*   Toggle between response body and headers with a single click in the editor tab.  \r\n    E.g. toggle between `say-hello.test.resp.json` \u0026 `say-hello.test.resp.md`\r\n*   As the response header file is __markdown__ it contains __links__ to its request \u0026 response body file.\r\n    These links are convenient when storing these files in GitHub. See [screenshot](#example-http-response-header) below.\r\n*   Enables using other utilities like __node__ processing request \u0026 response files as they are __valid__ JSON or XML\r\n*   Enables using __git__ as a simple regression test to compare response bodies and headers with previous requests.\r\n*   Enables configuration via the config file `.post-config` for all request files in a folder to:\r\n    *   set the http `\"endpoints\"` and specific http `\"headers\"`\r\n    *   set the `\"response\"` `\"folder\"` for response files.\r\n    *   set `\"variables\"` used to replace their occurrences in the request body. E.g. `\"user\":   \"{{user}}\",`\r\n    *   set `\"additionalProperties\"` used to add its properties to the request body.\r\n*   __Code Completion__ and __validation__ for config file in VSCode editor.\r\n*   If a request file - e.g. `my-request.json` - is in a folder without a `.post-config` executing\r\n    __friflo POST: POST Request__ from _View \u003e Command Palette..._ will ask to create an initial `.post-config`.\r\n\r\n`.post-config` example    \r\n```json\r\n{\r\n  \"endpoints\": [\r\n    { \"fileMatch\": [\"*.json\"], \"url\": \"http://localhost:8010/\" }\r\n  ],\r\n  \"headers\":   {\r\n    \"Connection\":   \"Keep-Alive\"\r\n  },\r\n  \"response\":  {\r\n    \"folder\":       \"response\"\r\n  },\r\n  \"variables\": {\r\n    \"{{user}}\":     \"admin\"\r\n  },\r\n  \"additionalProperties\": {\r\n    \"token\":        \"token\"\r\n  }\r\n}\r\n```\r\n\r\n## Usage\r\n\r\nThe screen recording (one minute) below show the entire workflow.  \r\n*   Using __Context menu \u003e POST Request__ to create `.post-config` file and adjust the `endpoint` url\r\n*   Click the __POST__ button on top of the JSON file and toggle in the response tab between response body (JSON) and headers\r\n*   Demonstrate [__JSON Schema validation__](https://code.visualstudio.com/docs/languages/json#_mapping-to-a-schema-in-the-workspace)\r\nof JSON request \u0026 response files.\r\n*   Execute a second request with a single click using the configuration from the beginning.\r\n*   Execute a third request - this time __PUT__ - to show the error case when the server is not responding.  \r\n    The request is canceled by clicking on the _progress indicator_ in the status bar.\r\n*   Use __VSCode Source Control__ to show the diff of the response info with a previous successful request.\r\n\r\n[![Usage - screen recording](https://raw.githubusercontent.com/friflo/vscode-friflo-post/master/docs/friflo-POST.gif)](https://raw.githubusercontent.com/friflo/vscode-friflo-post/master/docs/friflo-POST.gif)\r\n\r\n\r\n### Example HTTP response header\r\n\r\nThe links `response` \u0026 `request` point to the related response \u0026 request file in the repository.\r\n\r\n![logo](docs/images/response-header.png) \r\n\r\n## Tips\r\n\r\n* As every request file generate two response files e.g. `test.resp.json` and `test.resp.md` in the `response` folder\r\nit may be desired to hide them in the __EXPLORER__ panel. To do this add the section below to `.vscode/settings.json`.\r\n\r\n```json\r\n{\r\n    \"settings\": {\r\n        \"files.exclude\": {\r\n            \"**/response/*.resp.json\": true,\r\n            \"**/response/*.resp.md\":   true\r\n        }\r\n    }\r\n}\r\n\r\n```\r\n\r\n\r\n## License\r\n[MIT License](LICENSE)\r\n\r\n\r\n## Feedback\r\nAs this project is very young GitHub issue reports are welcome!  \r\nFirst commit: 2021-09-22. Published in VSCode Marketplace: 2021-09-26.  \r\n[GitHub Issues](https://github.com/friflo/vscode-friflo-post/issues)\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriflo%2Fvscode-friflo-post","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffriflo%2Fvscode-friflo-post","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriflo%2Fvscode-friflo-post/lists"}