WOPI defines a set of operations that enables a client to access and change files stored by a server. This allows the client to render files and provide file editing functionality for files stored by the server.
One example of how a client might use WOPI is by providing a browser-based viewer for a specific type of file. That client uses WOPI to get the contents of the file to present that content to the user as a web page in a browser. The following diagram shows an example of how that might work.
Figure 1: Using WOPI to provide a browser-based viewer for a specific type of file
A notable detail in the interaction in the preceding figure is that the WOPI server provides "information required to call the WOPI client". This information is learned by the WOPI server through an interaction called WOPI discovery. WOPI clients provide a mechanism through which a WOPI server discovers the abilities of the WOPI client, and methods for invoking those abilities. The following diagram depicts that interaction:
Figure 2: WOPI discovery