1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-01-11 15:40:26 +01:00

Merge pull request #9 from fa0311/thecodrr-feature/dynamic-query-id-in-path

Static generation of default values by the AddPathQueryIdOnParameters hook
This commit is contained in:
ふぁ 2023-06-13 15:13:19 +09:00 committed by GitHub
commit 10aaec8df8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 80 additions and 73 deletions

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/Bookmarks:
/graphql/{pathQueryId}/Bookmarks:
get:
operationId: getBookmarks
description: get bookmarks
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/Following:
/graphql/{pathQueryId}/Following:
get:
operationId: getFollowing
description: get user list of following
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -20,12 +18,10 @@ paths:
tags:
- "user-list"
/graphql/{queryId}/Followers:
/graphql/{pathQueryId}/Followers:
get:
operationId: getFollowers
description: get user list of followers
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/FavoriteTweet:
/graphql/{pathQueryId}/FavoriteTweet:
post:
operationId: postFavoriteTweet
description: favorite Tweet
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -20,12 +18,10 @@ paths:
tags:
- "post"
/graphql/{queryId}/UnfavoriteTweet:
/graphql/{pathQueryId}/UnfavoriteTweet:
post:
operationId: postUnfavoriteTweet
description: unfavorite Tweet
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -36,12 +32,10 @@ paths:
tags:
- "post"
/graphql/{queryId}/CreateRetweet:
/graphql/{pathQueryId}/CreateRetweet:
post:
operationId: postCreateRetweet
description: create Retweet
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -52,12 +46,10 @@ paths:
tags:
- "post"
/graphql/{queryId}/DeleteRetweet:
/graphql/{pathQueryId}/DeleteRetweet:
post:
operationId: postDeleteRetweet
description: delete Retweet
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -68,12 +60,10 @@ paths:
tags:
- "post"
/graphql/{queryId}/CreateTweet:
/graphql/{pathQueryId}/CreateTweet:
post:
operationId: postCreateTweet
description: create Tweet
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -84,12 +74,10 @@ paths:
tags:
- "post"
/graphql/{queryId}/DeleteTweet:
/graphql/{pathQueryId}/DeleteTweet:
post:
operationId: postDeleteTweet
description: delete Retweet
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/ProfileSpotlightsQuery:
/graphql/{pathQueryId}/ProfileSpotlightsQuery:
get:
operationId: getProfileSpotlightsQuery
description: "get user by screen name"
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/HomeTimeline:
/graphql/{pathQueryId}/HomeTimeline:
get:
operationId: getHomeTimeline
description: get tweet list of timeline
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -20,12 +18,10 @@ paths:
tags:
- "tweet"
/graphql/{queryId}/HomeLatestTimeline:
/graphql/{pathQueryId}/HomeLatestTimeline:
get:
operationId: getHomeLatestTimeline
description: get tweet list of timeline
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -36,12 +32,10 @@ paths:
tags:
- "tweet"
/graphql/{queryId}/ListLatestTweetsTimeline:
/graphql/{pathQueryId}/ListLatestTweetsTimeline:
get:
operationId: getListLatestTweetsTimeline
description: get tweet list of timeline
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/TweetDetail:
/graphql/{pathQueryId}/TweetDetail:
get:
operationId: getTweetDetail
description: get TweetDetail
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/UserByScreenName:
/graphql/{pathQueryId}/UserByScreenName:
get:
operationId: getUserByScreenName
description: "get user by screen name"
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -4,12 +4,10 @@ info:
version: 0.0.1
paths:
/graphql/{queryId}/UserTweets:
/graphql/{pathQueryId}/UserTweets:
get:
operationId: getUserTweets
description: "get user tweets"
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -20,12 +18,10 @@ paths:
tags:
- "tweet"
/graphql/{queryId}/UserTweetsAndReplies:
/graphql/{pathQueryId}/UserTweetsAndReplies:
get:
operationId: getUserTweetsAndReplies
description: "get user replies tweets"
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -36,12 +32,10 @@ paths:
tags:
- "tweet"
/graphql/{queryId}/UserMedia:
/graphql/{pathQueryId}/UserMedia:
get:
operationId: getUserMedia
description: "get user media tweets"
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation
@ -52,12 +46,10 @@ paths:
tags:
- "tweet"
/graphql/{queryId}/Likes:
/graphql/{pathQueryId}/Likes:
get:
operationId: getLikes
description: "get user likes tweets"
parameters:
- $ref: "../resources/parameters.yaml#/components/parameters/queryId"
responses:
"200":
description: Successful operation

View file

@ -1,4 +1,8 @@
openapi: 3.0.3
info:
title: Twitter OpenAPI
version: 0.0.1
paths: {}
components:

View file

@ -56,7 +56,8 @@ components:
card:
type: object
properties:
rest_id: string
rest_id:
type: string
legacy:
type: object
required:

View file

@ -14,6 +14,7 @@ class Config:
"request": {
key: [
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnContent(
split=-1, contentType="application/json"
),
@ -23,6 +24,7 @@ class Config:
| {
key: [
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnParameters(
split=-1,
schemaType=None,
@ -61,6 +63,7 @@ class Config:
key: [
AddSecuritySchemesOnHeader(split=-1),
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnParameters(
split=-1,
schemaType="string",
@ -72,6 +75,7 @@ class Config:
key: [
AddSecuritySchemesOnHeader(split=-1),
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnBody(
split=-1,
schemaType=None,
@ -112,6 +116,7 @@ class Config:
"request": {
key: [
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnParameters(
split=-1,
schemaType="string",
@ -122,6 +127,7 @@ class Config:
| {
key: [
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnBody(
split=-1,
schemaType=None,
@ -160,6 +166,7 @@ class Config:
"request": {
key: [
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnParameters(
split=-1,
schemaType="string",
@ -170,6 +177,7 @@ class Config:
| {
key: [
SetResponsesHeader(suffix=None),
AddPathQueryIdOnParameters(split=-1),
AddParametersOnParameters(
split=-1,
schemaType="string",

View file

@ -61,10 +61,12 @@ class OpenapiHookBase(HookBase):
def hook(self, value: dict) -> dict:
return value
class OtherHookBase(HookBase):
def hook(self) -> tuple[str, dict]:
return "", {}
class SchemasHookBase(HookBase):
def hook(self, value: dict) -> dict:
return value
@ -118,6 +120,14 @@ class AddSecuritySchemesOnHeader(RequestHookBase):
value["parameters"].extend(param)
return path, value
class ReplaceQueryIdPlaceholder(RequestHookBase):
def hook(self, path: str, value: dict):
path, value = super().hook(path, value)
new = self.PLACEHOLDER[self.path_name]["queryId"]
return path.replace(r"{pathQueryId}", new), value
class SetResponsesHeader(RequestHookBase):
suffix: str
@ -132,6 +142,28 @@ class SetResponsesHeader(RequestHookBase):
return path, value
class AddPathQueryIdOnParameters(RequestHookBase):
def __init__(self, split: str = 1):
super().__init__(split=split)
def hook(self, path: str, value: dict):
path, value = super().hook(path, value)
data = self.PLACEHOLDER[self.path_name]
value["parameters"].append(
{
"in": "path",
"name": "pathQueryId",
"required": True,
"schema": {
"type": "string",
"default": data["queryId"],
"example": data["queryId"],
},
}
)
return path, value
# OnParameters