1 /*
2 * Copyright 2012-2025 CodeLibs Project and the Others.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13 * either express or implied. See the License for the specific language
14 * governing permissions and limitations under the License.
15 */
16 package org.codelibs.fess.api;
17
18 import java.io.IOException;
19
20 import jakarta.servlet.FilterChain;
21 import jakarta.servlet.ServletException;
22 import jakarta.servlet.http.HttpServletRequest;
23 import jakarta.servlet.http.HttpServletResponse;
24
25 /**
26 * Interface for managing web API request processing.
27 * Implementations of this interface handle specific types of web API requests
28 * by matching incoming requests and processing them accordingly.
29 */
30 public interface WebApiManager {
31
32 /**
33 * Checks if the request matches this API manager.
34 * @param request The HTTP servlet request.
35 * @return True if the request matches, false otherwise.
36 */
37 boolean matches(HttpServletRequest request);
38
39 /**
40 * Processes the request through this API manager.
41 * @param request The HTTP servlet request.
42 * @param response The HTTP servlet response.
43 * @param chain The filter chain.
44 * @throws IOException If an input/output error occurs.
45 * @throws ServletException If a servlet error occurs.
46 */
47 void process(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException;
48
49 }