API Filter
Introduction
This plugin is used to filter API interfaces based on URLs or tags, supporting multiple matching rules and combination conditions. Key features include:
- Filter by URL or tag
- Support for include and exclude rules
- Support for string, regular expression, or custom function matching
- Support for multi-condition combination filtering
Basic Usage
alova.config.js
import { defineConfig } from '@alova/wormhole';
import { apiFilter } from '@alova/wormhole/plugin';
export default defineConfig({
  generator: [
    {
      // ...
      plugin: [
        // Filter APIs containing a specific URL
        apiFilter({ include: '/api/user' })
      ]
    }
  ]
});
Configuration Parameters
interface Config {
  /**
   * Filter scope, defaults to 'url'
   * url: Filter by API path
   * tag: Filter by tag
   */
  scope?: 'url' | 'tag';
  /**
   * Include rule
   * string: Include this string
   * RegExp: Match this regex
   * function: Custom matching function
   */
  include?: string | RegExp | ((key: string) => boolean);
  /**
   * Exclude rule
   * string: Include this string
   * RegExp: Match this regex
   * function: Custom matching function
   */
  exclude?: string | RegExp | ((key: string) => boolean);
}
function apiFilter(config: Config | Config[]): ApiPlugin;
Multi-Condition Configuration
// Configure multiple filter conditions simultaneously
// The final result is the union of all conditions
apiFilter([
  {
    scope: 'url',
    include: /^\/api\/user/ // Include URLs starting with /api/user
  },
  {
    scope: 'tag',
    include: 'admin' // Include APIs with the 'admin' tag
  }
]);
Combining Include and Exclude
// Include specific URLs but exclude certain APIs
apiFilter({
  include: /\/api\/user/,
  exclude: '/api/user/list' // Exclude /api/user/list
});
Note: When both
includeandexcludeare specified, the result will exclude APIs matched byexcludefrom theincluderesult.
Custom Matching Rules
// Use a custom function for matching
apiFilter({
  scope: 'url',
  include: key => key.startsWith('/api') && key.length > 10 // Include URLs starting with /api and longer than 10 characters
});
 Is using alova in your project? please tell me!
Is using alova in your project? please tell me!