diff --git a/plugins/auth-jwt/package.json b/plugins/auth-jwt/package.json index dde26cd1..67f255d3 100644 --- a/plugins/auth-jwt/package.json +++ b/plugins/auth-jwt/package.json @@ -1,6 +1,6 @@ { "name": "@yaak/auth-jwt", - "displayName": "JWT Authentication", + "displayName": "JSON Web Tokens", "description": "Authenticate requests using JSON web tokens (JWT)", "repository": { "type": "git", diff --git a/plugins/auth-oauth2/package.json b/plugins/auth-oauth2/package.json index b2226881..f9092104 100644 --- a/plugins/auth-oauth2/package.json +++ b/plugins/auth-oauth2/package.json @@ -1,6 +1,6 @@ { "name": "@yaak/auth-oauth2", - "displayName": "OAuth 2.0 Authentication", + "displayName": "OAuth 2.0", "description": "Authenticate requests using OAuth 2.0", "repository": { "type": "git", diff --git a/plugins/filter-jsonpath/README.md b/plugins/filter-jsonpath/README.md new file mode 100644 index 00000000..cf163519 --- /dev/null +++ b/plugins/filter-jsonpath/README.md @@ -0,0 +1,59 @@ +# JSONPath + +A filter plugin that enables [JSONPath](https://en.wikipedia.org/wiki/JSONPath) +extraction and filtering for JSON responses, making it easy to extract specific values +from complex JSON structures. + +![Screenshot of JSONPath filtering](screenshot.png) + +## Overview + +This plugin provides JSONPath filtering for responses in Yaak. JSONPath is a query +language for JSON, similar to XPath for XML, that provides the ability to extract data +from JSON documents using a simple, expressive syntax. This is useful for working with +complex API responses where you need to only view a small subset of response data. + +## How JSONPath Works + +JSONPath uses a dot-notation syntax to navigate JSON structures: + +- `$` - Root element +- `.` - Child element +- `..` - Recursive descent +- `*` - Wildcard +- `[]` - Array index or filter + +## JSONPath Syntax Examples + +### Basic Navigation + +``` +$.store.book[0].title # First book title +$.store.book[*].author # All book authors +$.store.book[-1] # Last book +$.store.book[0,1] # First two books +$.store.book[0:2] # First two books (slice) +``` + +### Filtering + +``` +$.store.book[?(@.price < 10)] # Books under $10 +$.store.book[?(@.author == 'Tolkien')] # Books by Tolkien +$.store.book[?(@.category == 'fiction')] # Fiction books +``` + +### Recursive Search + +``` +$..author # All authors anywhere in the document +$..book[2] # Third book anywhere +$..price # All prices in the document +``` + +## Usage + +1. Make an API request that returns JSON data +2. Below the response body, click the filter icon +3. Enter a JSONPath expression +4. View the extracted data in the results panel diff --git a/plugins/filter-jsonpath/package.json b/plugins/filter-jsonpath/package.json index f7000124..591400a1 100644 --- a/plugins/filter-jsonpath/package.json +++ b/plugins/filter-jsonpath/package.json @@ -2,6 +2,11 @@ "name": "@yaak/filter-jsonpath", "displayName": "JSONPath Filter", "description": "Filter JSON response data using JSONPath expressions", + "repository": { + "type": "git", + "url": "https://github.com/mountain-loop/yaak.git", + "directory": "plugins/filter-jsonpath" + }, "private": true, "version": "0.1.0", "scripts": { diff --git a/plugins/filter-jsonpath/screenshot.png b/plugins/filter-jsonpath/screenshot.png new file mode 100644 index 00000000..e6aca819 Binary files /dev/null and b/plugins/filter-jsonpath/screenshot.png differ