Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Jina
{
public sealed partial class SerpV1SerpPathGetResponse2
public sealed partial class SerpV1SerpPathPostResponse
{
/// <summary>
/// Serializes the current instance to a JSON string using the provided JsonSerializerContext.
Expand Down Expand Up @@ -34,14 +34,14 @@ public string ToJson(
/// <summary>
/// Deserializes a JSON string using the provided JsonSerializerContext.
/// </summary>
public static global::Jina.SerpV1SerpPathGetResponse2? FromJson(
public static global::Jina.SerpV1SerpPathPostResponse? FromJson(
string json,
global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext)
{
return global::System.Text.Json.JsonSerializer.Deserialize(
json,
typeof(global::Jina.SerpV1SerpPathGetResponse2),
jsonSerializerContext) as global::Jina.SerpV1SerpPathGetResponse2;
typeof(global::Jina.SerpV1SerpPathPostResponse),
jsonSerializerContext) as global::Jina.SerpV1SerpPathPostResponse;
}

/// <summary>
Expand All @@ -51,26 +51,26 @@ public string ToJson(
[global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")]
[global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")]
#endif
public static global::Jina.SerpV1SerpPathGetResponse2? FromJson(
public static global::Jina.SerpV1SerpPathPostResponse? FromJson(
string json,
global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null)
{
return global::System.Text.Json.JsonSerializer.Deserialize<global::Jina.SerpV1SerpPathGetResponse2>(
return global::System.Text.Json.JsonSerializer.Deserialize<global::Jina.SerpV1SerpPathPostResponse>(
json,
jsonSerializerOptions);
}

/// <summary>
/// Deserializes a JSON stream using the provided JsonSerializerContext.
/// </summary>
public static async global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathGetResponse2?> FromJsonStreamAsync(
public static async global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathPostResponse?> FromJsonStreamAsync(
global::System.IO.Stream jsonStream,
global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext)
{
return (await global::System.Text.Json.JsonSerializer.DeserializeAsync(
jsonStream,
typeof(global::Jina.SerpV1SerpPathGetResponse2),
jsonSerializerContext).ConfigureAwait(false)) as global::Jina.SerpV1SerpPathGetResponse2;
typeof(global::Jina.SerpV1SerpPathPostResponse),
jsonSerializerContext).ConfigureAwait(false)) as global::Jina.SerpV1SerpPathPostResponse;
}

/// <summary>
Expand All @@ -80,11 +80,11 @@ public string ToJson(
[global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")]
[global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")]
#endif
public static global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathGetResponse2?> FromJsonStreamAsync(
public static global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathPostResponse?> FromJsonStreamAsync(
global::System.IO.Stream jsonStream,
global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null)
{
return global::System.Text.Json.JsonSerializer.DeserializeAsync<global::Jina.SerpV1SerpPathGetResponse2?>(
return global::System.Text.Json.JsonSerializer.DeserializeAsync<global::Jina.SerpV1SerpPathPostResponse?>(
jsonStream,
jsonSerializerOptions);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Jina
/// <summary>
///
/// </summary>
public sealed partial class SerpV1SerpPathGetResponse
public sealed partial class SerpV1SerpPathPostResponse
{

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Jina
{
public sealed partial class SerpV1SerpPathGetResponse
public sealed partial class SerpV1SerpPathPostResponse2
{
/// <summary>
/// Serializes the current instance to a JSON string using the provided JsonSerializerContext.
Expand Down Expand Up @@ -34,14 +34,14 @@ public string ToJson(
/// <summary>
/// Deserializes a JSON string using the provided JsonSerializerContext.
/// </summary>
public static global::Jina.SerpV1SerpPathGetResponse? FromJson(
public static global::Jina.SerpV1SerpPathPostResponse2? FromJson(
string json,
global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext)
{
return global::System.Text.Json.JsonSerializer.Deserialize(
json,
typeof(global::Jina.SerpV1SerpPathGetResponse),
jsonSerializerContext) as global::Jina.SerpV1SerpPathGetResponse;
typeof(global::Jina.SerpV1SerpPathPostResponse2),
jsonSerializerContext) as global::Jina.SerpV1SerpPathPostResponse2;
}

/// <summary>
Expand All @@ -51,26 +51,26 @@ public string ToJson(
[global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")]
[global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")]
#endif
public static global::Jina.SerpV1SerpPathGetResponse? FromJson(
public static global::Jina.SerpV1SerpPathPostResponse2? FromJson(
string json,
global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null)
{
return global::System.Text.Json.JsonSerializer.Deserialize<global::Jina.SerpV1SerpPathGetResponse>(
return global::System.Text.Json.JsonSerializer.Deserialize<global::Jina.SerpV1SerpPathPostResponse2>(
json,
jsonSerializerOptions);
}

/// <summary>
/// Deserializes a JSON stream using the provided JsonSerializerContext.
/// </summary>
public static async global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathGetResponse?> FromJsonStreamAsync(
public static async global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathPostResponse2?> FromJsonStreamAsync(
global::System.IO.Stream jsonStream,
global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext)
{
return (await global::System.Text.Json.JsonSerializer.DeserializeAsync(
jsonStream,
typeof(global::Jina.SerpV1SerpPathGetResponse),
jsonSerializerContext).ConfigureAwait(false)) as global::Jina.SerpV1SerpPathGetResponse;
typeof(global::Jina.SerpV1SerpPathPostResponse2),
jsonSerializerContext).ConfigureAwait(false)) as global::Jina.SerpV1SerpPathPostResponse2;
}

/// <summary>
Expand All @@ -80,11 +80,11 @@ public string ToJson(
[global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")]
[global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")]
#endif
public static global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathGetResponse?> FromJsonStreamAsync(
public static global::System.Threading.Tasks.ValueTask<global::Jina.SerpV1SerpPathPostResponse2?> FromJsonStreamAsync(
global::System.IO.Stream jsonStream,
global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null)
{
return global::System.Text.Json.JsonSerializer.DeserializeAsync<global::Jina.SerpV1SerpPathGetResponse?>(
return global::System.Text.Json.JsonSerializer.DeserializeAsync<global::Jina.SerpV1SerpPathPostResponse2?>(
jsonStream,
jsonSerializerOptions);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Jina
/// <summary>
///
/// </summary>
public sealed partial class SerpV1SerpPathGetResponse2
public sealed partial class SerpV1SerpPathPostResponse2
{

/// <summary>
Expand Down
4 changes: 2 additions & 2 deletions src/libs/Jina/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ paths:
tags:
- serp
summary: Serp
operationId: serp_v1_serp__path__get
operationId: serp_v1_serp__path__post
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Duplicate operationId across GET and POST breaks SDK generation; fix GET to use its own operationId.

Both GET and POST under /v1/serp/{path} share serp_v1_serp__path__post. operationId must be unique; many generators will overwrite one method or fail.

Apply this diff:

   /v1/serp/{path}:
     get:
       tags:
         - serp
       summary: Serp
-      operationId: serp_v1_serp__path__post
+      operationId: serp_v1_serp__path__get
...
     post:
       tags:
         - serp
       summary: Serp
       operationId: serp_v1_serp__path__post

Run to detect any remaining duplicates:

Also applies to: 330-330


🏁 Script executed:

#!/bin/bash
set -euo pipefail
pip -q install pyyaml >/dev/null
python - <<'PY'
import yaml, collections
from pathlib import Path
doc = yaml.safe_load(Path('src/libs/Jina/openapi.yaml').read_text())
ops=[]
for path, node in (doc.get('paths') or {}).items():
  for method, op in node.items():
    if method.lower() in {'get','post','put','patch','delete','head','options','trace'}:
      oid = (op or {}).get('operationId')
      ops.append((oid, path, method.upper()))
dups = [oid for oid, c in collections.Counter(o for o,_,_ in ops).items() if c>1]
if dups:
  print('Duplicate operationIds found:')
  for oid in dups:
    for o,p,m in ops:
      if o==oid:
        print(f'  {oid}: {m} {p}')
  raise SystemExit(1)
print('No duplicate operationIds.')
PY

Length of output: 126


Duplicate operationId across GET and POST — change GET to serp_v1_serp__path__get.

GET and POST under /v1/serp/{path} both use operationId serp_v1_serp__path__post; operationId must be unique or SDK generators will fail/overwrite.

File: src/libs/Jina/openapi.yaml (GET: line 306, POST: line 330)

Apply this diff:

   /v1/serp/{path}:
     get:
       tags:
         - serp
       summary: Serp
-      operationId: serp_v1_serp__path__post
+      operationId: serp_v1_serp__path__get
...
     post:
       tags:
         - serp
       summary: Serp
       operationId: serp_v1_serp__path__post
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
operationId: serp_v1_serp__path__post
operationId: serp_v1_serp__path__get
🤖 Prompt for AI Agents
In src/libs/Jina/openapi.yaml around line 306, the GET operation for
/v1/serp/{path} currently uses the duplicate operationId
"serp_v1_serp__path__post"; update that operationId to "serp_v1_serp__path__get"
to ensure uniqueness (and check nearby POST at line ~330 remains
"serp_v1_serp__path__post"), then run any OpenAPI validators or SDK generators
to confirm no naming collisions and update any code references if they rely on
the old operationId.

parameters:
- name: path
in: path
Expand All @@ -327,7 +327,7 @@ paths:
tags:
- serp
summary: Serp
operationId: serp_v1_serp__path__get
operationId: serp_v1_serp__path__post
parameters:
- name: path
in: path
Expand Down