webMethod()

Defines a backend method that can be called from the frontend.

The webMethod() method is a wrapper used to export methods from backend code that can be called from the frontend.

The permissions parameter is used to define which site visitors have permission to call the method produced by webMethod(). Import the Permissions enum from @wix/web-methods to define the permissions.

Caution: Be careful when selecting a permission, as exposing a method with the wrong permissions can create security risks.

The options parameter contains the cache object which allows you to temporarily store the return values from web methods on Wix's infrastructure. When there are significant updates made to your site's data, call Invalidate Cache to clear caches, ensuring your site remains up to date for your visitors.

Important: The web method caching feature is currently only supported for developing sites.

Web methods must be defined in a file:

  • With a .web.js extension when developing sites, or apps in Wix Blocks.
  • With a .web.ts extension when developing apps using the Wix CLI.

Method Declaration

Copy

Parameters

NameTypeDescription
permissionsPermissionsPermissions needed to call the method in frontend code.

Permission options:
- Permissions.Anyone: Any site visitor can call the method.
- Permissions.Admin: Only site admins can call the method.
- Permissions.SiteMember: Only site members can call the method.
webFunctionFunctionMethod to wrap with webMethod(). This method must return serializable results. This method can be asynchronous.

Note: You may need to elevate the permissions of API calls made in this method.
optionsOptionsWeb method options.
options.cacheCacheCriteria for caching the return value of the webFunction being passed.
options.cache.tagsArray<string>Required A list of tags used for categorizing and identifying cached return values. These tags are essential for managing and invalidating caches when necessary.
options.cache.ttlNumberSpecifies the Time to Live (TTL) for cached return values, measured in seconds. This value indicates how long data remains in the cache before it is considered stale.

Default: 604800 seconds (1 week).

Returns

Function

The method specified in the webMethod() call, wrapped with the webMethod() method. This wrapped method always returns a promise that resolves to the response from the original method you provided.

Site example

Backend code

Copy

Backend code with caching

Copy

Frontend code

Import the web method, then call it. For example:

Copy

Apps example

Backend code

Copy

Frontend code

Import the web method, then call it. For example:

Copy
Did this help?