diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..bf8e8bd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,16 @@ +# Copyright 2023 SkyAPM org +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*venv* +.github \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..24bb6be --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +# Copyright 2023 SkyAPM org +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Stage 1: Builder stage with full Python image +FROM python:3.11-slim as final + +ENV PYTHONUNBUFFERED=1 + +WORKDIR /app + +# Copy the necessary files into the container +COPY . /app + +# Build the project with make +RUN python3 -m pip install grpcio-tools packaging \ + && python3 -m tools.grpc_gen \ + && python3 -m pip install .[all] + + +# Expose the gRPC service port +EXPOSE 17128 + +# Set the entrypoint to run the gRPC service +ENTRYPOINT ["python", "-m", "servers.simple.run"] diff --git a/Makefile b/Makefile index 7f6a442..2749ad4 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,11 @@ else poetry self update || $(MAKE) poetry-fallback endif +.PHONY: gen-basic +gen-basic: + python3 -m pip install grpcio-tools packaging + python3 -m tools.grpc_gen + .PHONY: install install: gen-basic python3 -m pip install --upgrade pip diff --git a/pyproject.toml b/pyproject.toml index d0dd1e7..acdda2e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,17 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", ] + +packages = [ + { include = "servers" }, + { include = "models" } +] + +# poetry will ignore generated files as .gitignore, but we need them in package +include = ['servers/protos/**/*'] +exclude = ['tests'] + + [tool.poetry.urls] "Issues Tracker" = "https://github.com/apache/skywalking/issues" "Documentation" = "TBD" @@ -38,6 +49,9 @@ classifiers = [ [tool.poetry.scripts] # entry point for the CLI +[tool.poetry.build] +generate-setup-file = true + [tool.poetry.dependencies] python = ">=3.8,<3.12" # Gradio needs 3.8+ grpcio = "*" @@ -49,6 +63,7 @@ inflect = "^6.0.4" pytest = "^7.3.2" + [tool.poetry.dev-dependencies] #PySnooper = "^1.1.1" ## TESTING @@ -78,5 +93,5 @@ flake8-2020 = "^1.7.0" gradio = "^3.35.2" [build-system] -requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" \ No newline at end of file diff --git a/server/README.md b/server/README.md deleted file mode 100644 index e300390..0000000 --- a/server/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# empty.proto is a hack -Well-known types seem to be missing on some platforms (e.g. Windows). - -empty.proto in this folder is just a placeholder? It's not actually used in the generated code. - -Generated code imports it from the actual installed protobuf package, not in this folder. \ No newline at end of file diff --git a/server/__init__.py b/server/__init__.py deleted file mode 100644 index 9000132..0000000 --- a/server/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2023 SkyAPM org -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/server/proto/ai_http_uri_recognition.proto b/server/proto/ai_http_uri_recognition.proto deleted file mode 100644 index f5cb57e..0000000 --- a/server/proto/ai_http_uri_recognition.proto +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -syntax = "proto3"; - -import "google/protobuf/empty.proto"; - - -option java_multiple_files = true; -option java_package = "org.apache.skywalking.oap.server.ai.pipeline.grpc"; - -service HttpUriRecognitionService { - // Sync for the pattern recognition dictionary. - rpc fetchAllPatterns(HttpUriRecognitionSyncRequest) returns (HttpUriRecognitionResponse) {} - // Feed new raw data and matched patterns to the AI-server. - rpc feedRawData(HttpUriRecognitionRequest) returns (google.protobuf.Empty) {} -} - -message HttpUriRecognitionSyncRequest { - string service = 1; - // The version of pattern dictionary at the OAP side. - string version = 2; -} - -message HttpUriRecognitionRequest { - string service = 1; - repeated HttpRawUri unrecognizedUris = 2; -} - -message HttpRawUri { - string name = 1; - int64 matchedCounter = 2; -} - -message HttpUriRecognitionResponse { - repeated Pattern patterns = 1; - // The version of pattern dictionary at the AI-server side. - // If it is as same as HttpUriRecognitionSyncRequest#version, - // patterns could be empty as nothing should be updated. - string version = 2; -} - -message Pattern { - // Quick match URI pattern. {var} represents a variable part in the URI. - // /product/{var} is the pattern for /product/1, /product/2 - // GET:/product/{var}/detail is the pattern for GET:/product/1/detail, GET:/product/2/detail - string pattern = 2; -} \ No newline at end of file diff --git a/server/proto/google/protobuf/empty.proto b/server/proto/google/protobuf/empty.proto deleted file mode 100644 index b87c89d..0000000 --- a/server/proto/google/protobuf/empty.proto +++ /dev/null @@ -1,51 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package google.protobuf; - -option go_package = "google.golang.org/protobuf/types/known/emptypb"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "EmptyProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; -option csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option cc_enable_arenas = true; - -// A generic empty message that you can re-use to avoid defining duplicated -// empty messages in your APIs. A typical example is to use it as the request -// or the response type of an API method. For instance: -// -// service Foo { -// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); -// } -// -message Empty {} diff --git a/server/tests/Endpoint100_trivial_3k_repeat.txt b/server/tests/Endpoint100_trivial_3k_repeat.txt deleted file mode 100644 index 7b5dadd..0000000 --- a/server/tests/Endpoint100_trivial_3k_repeat.txt +++ /dev/null @@ -1,3000 +0,0 @@ -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 -/api/v1/users/123 -/api/v1/users/456 -/api/v1/users/789 -/api/v1/users/abc -/api/v1/users/def -/api/v1/users/ghi -/api/v1/users/123abc -/api/v1/users/xyz123 -/api/v1/users/abc456 -/api/v1/users/789xyz -/api/v1/users/abcdef -/api/v1/users/xyz789abc -/api/v1/users/123abc456 -/api/v1/users/xyz123abc789 -/api/v1/posts/123 -/api/v1/posts/456 -/api/v1/posts/789 -/api/v1/posts/abc -/api/v1/posts/def -/api/v1/posts/ghi -/api/v1/posts/123abc -/api/v1/posts/xyz123 -/api/v1/posts/abc456 -/api/v1/posts/789xyz -/api/v1/posts/abcdef -/api/v1/posts/xyz789abc -/api/v1/posts/123abc456 -/api/v1/posts/xyz123abc789 -/api/v1/products/xyz -/api/v1/products/123 -/api/v1/products/789 -/api/v1/products/def -/api/v1/products/xyz123 -/api/v1/products/abc456 -/api/v1/products/789xyz -/api/v1/products/abcdef -/api/v1/products/xyz789abc -/api/v1/products/123abc456 -/api/v1/orders/abc -/api/v1/orders/def -/api/v1/orders/xyz -/api/v1/orders/abc123 -/api/v1/orders/xyz789 -/api/v1/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v1/orders/abcxyzdef456def456def456def456def456 -/api/v1/orders/123abc456 -/api/v999/orders/def456def456def456def456def456def456def456def456def456def456def456def456 -/api/v999/orders/abcxyzdef456def456def456def456def456 -/api/v999/orders/123abc456 -/api/v777/orders/123abc456 -/api/v1/accounts/123 -/api/v1/invoices/abc -/api/v1/accounts/xyz -/api/v1/accounts/789 -/api/v1/accounts/abcdef -/api/v1/accounts/xyz123abc -/api/v1/accounts/abc456xyz -/api/v1/accounts/789xyzabc -/api/v1/accounts/xyzabcdef -/api/v1/accounts/123abc456def -/api/v1/invoices/xyz -/api/v1/invoices/789 -/api/v1/invoices/abc123 -/api/v1/invoices/xyz789 -/api/v1/invoices/def456 -/api/v1/invoices/abcxyz -/api/v1/invoices/123abc456 -/api/v2/data/users/123 -/api/v2/data/users/456 -/api/v2/data/users/789 -/api/v2/data/users/abc -/api/v2/data/users/def -/api/v2/data/users/def/hihihi -/user/123 -/user/456 -/user/789 -/user/1233333/post/448844 -/user/456/post/130919 -/user/789/post/130919 -/apple/789/post/1092330 -/user/hahaha123/post/12103 -/user/hahaha456/post/12103 -/user/hahaha890/post/12103 -/user/hahaha097/post/12103 -/user/hahaha097/profile/12103/compare/hahaha0197/profile/12103 -/user/hahaha0917/profile/121033/compare/hahaha0297/profile/12105 -/user/hahaha0927/profile/121303/compare/hahah1a097/profile/12106 -/product/123 -/product/abc -/haha -/foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar -/abc -/def -/haha -GET: /api/v1/users/123 -GET:/api/v1/users/123 -GET:/api/v1/users/abc -GET:/api/v2/users/123 -POST:/api/v1/users/1231343 -FETCH:/api/v1/users/123234 diff --git a/server/tests/__init__.py b/server/tests/__init__.py deleted file mode 100644 index 9000132..0000000 --- a/server/tests/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2023 SkyAPM org -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/servers/protos/ai_http_uri_recognition.proto b/servers/protos/ai_http_uri_recognition.proto index f5cb57e..b03e7e7 100644 --- a/servers/protos/ai_http_uri_recognition.proto +++ b/servers/protos/ai_http_uri_recognition.proto @@ -44,7 +44,6 @@ message HttpUriRecognitionRequest { message HttpRawUri { string name = 1; - int64 matchedCounter = 2; } message HttpUriRecognitionResponse { diff --git a/servers/simple/run.py b/servers/simple/run.py index 905454e..c400ac9 100644 --- a/servers/simple/run.py +++ b/servers/simple/run.py @@ -19,6 +19,7 @@ def run(): + print('Starting server from entrypoint...') ProxyURIDrainResultsManager.register("URIDrainResults", URIDrainResults) manager = ProxyURIDrainResultsManager() diff --git a/servers/tests/mock_client.py b/servers/tests/mock_client.py index 6f4b892..a8c6acb 100644 --- a/servers/tests/mock_client.py +++ b/servers/tests/mock_client.py @@ -147,7 +147,7 @@ async def run() -> None: start_time = time.time() print('-------------- WAITING FOR SENDING 1000 SERVICES ---------------') - for i in range(100): + for i in range(10): mock_data_list = get_mock_data() unrecognized_uris = [HttpRawUri(name=uri) for uri in mock_data_list] mock_service_list = f'test_service_{i}' @@ -163,7 +163,7 @@ async def run() -> None: print('-------------- WAITING FOR FETCHING PATTERN ---------------') time.sleep(1) start = time.time() - for i in range(100): + for i in range(10): request = ai_http_uri_recognition_pb2.HttpUriRecognitionSyncRequest( service=f'test_service_{i}', version='NULL',