From 9cabd49c9231fce83f59e0fc7b4e44c85ad24dc0 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:04:29 +0900 Subject: [PATCH 01/21] =?UTF-8?q?refactor:=20=E3=83=87=E3=82=A3=E3=83=AC?= =?UTF-8?q?=E3=82=AF=E3=83=88=E3=83=AA=E6=A7=8B=E6=88=90=E3=82=92=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/class.tsp | 28 -- src/file/index.tsp | 31 --- src/main.tsp | 19 +- .../index.tsp => models/airplane.tsp} | 96 ------- src/{bus/index.tsp => models/bus.tsp} | 244 ------------------ src/models/file.tsp | 8 + src/{search/index.tsp => models/search.tsp} | 63 ----- src/{train/index.tsp => models/train.tsp} | 152 ----------- src/routes/airplane.tsp | 88 +++++++ src/routes/bus.tsp | 235 +++++++++++++++++ src/routes/file.tsp | 17 ++ src/routes/index.tsp | 35 +++ src/routes/search.tsp | 55 ++++ src/routes/train.tsp | 143 ++++++++++ 14 files changed, 591 insertions(+), 623 deletions(-) delete mode 100644 src/file/index.tsp rename src/{airplane/index.tsp => models/airplane.tsp} (60%) rename src/{bus/index.tsp => models/bus.tsp} (78%) create mode 100644 src/models/file.tsp rename src/{search/index.tsp => models/search.tsp} (80%) rename src/{train/index.tsp => models/train.tsp} (77%) create mode 100644 src/routes/airplane.tsp create mode 100644 src/routes/bus.tsp create mode 100644 src/routes/file.tsp create mode 100644 src/routes/index.tsp create mode 100644 src/routes/search.tsp create mode 100644 src/routes/train.tsp diff --git a/src/common/class.tsp b/src/common/class.tsp index ca6e525..ef4e28c 100644 --- a/src/common/class.tsp +++ b/src/common/class.tsp @@ -1,9 +1,3 @@ -import "@typespec/http"; - -import "./error.tsp"; - -using TypeSpec.Http; - @doc("アクセストークン") scalar ConsumerKey extends string; @@ -81,25 +75,3 @@ model Operator { @doc("事業者名称(多言語対応)") `odpt:operatorTitle`?: MultilingualTitle; } - -@route("/api/v4/odpt/Calendar") -interface CalendarOperations { - @doc("曜日・日付区分(odpt:Calendar)の内容を取得する") - @get - getCalendars( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: url, - ): Calendar[] | Common.Error; -} - -@route("/api/v4/odpt/Operator") -interface OperatorOperations { - @doc("公共交通機関の事業者(odpt:Operator)の内容を取得する") - @get - getOperators( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: url, - ): Operator[] | Common.Error; -} diff --git a/src/file/index.tsp b/src/file/index.tsp deleted file mode 100644 index eea37d4..0000000 --- a/src/file/index.tsp +++ /dev/null @@ -1,31 +0,0 @@ -import "@typespec/http"; -import "@typespec/rest"; -import "../common/class.tsp"; -import "../common/error.tsp"; - -@service({ - title: "ODPT File API", -}) -@server("https://api.odpt.org/api/v4", "API サーバー") -@doc("配布されるファイルを取得するためのAPI") -@useAuth(ApiKeyAuth) -namespace FileAPI; - -using TypeSpec.Http; -using TypeSpec.Rest; - -@doc("ファイルリンクへのリダイレクト") -model FileRedirect { - @statusCode _: 302; -} - -@doc("各社提供ファイル取得用API") -@route("/files/{filePath}") -interface FilesOperations { - @summary("ファイルを取得する") - @get - getFiles( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @path @doc("ファイルパス") filePath: string, - ): FileRedirect | Common.Error; -} diff --git a/src/main.tsp b/src/main.tsp index be59df6..0b1f5a4 100644 --- a/src/main.tsp +++ b/src/main.tsp @@ -1,12 +1,13 @@ import "@typespec/http"; -import "@typespec/rest"; -import "@typespec/openapi3"; +import "./routes/index.tsp"; -import "./common/error.tsp"; -import "./common/class.tsp"; +using TypeSpec.Http; -import "./search/index.tsp"; -import "./airplane/index.tsp"; -import "./train/index.tsp"; -import "./bus/index.tsp"; -import "./file/index.tsp"; +@service({ + title: "ODPT API", +}) +@server("https://api.odpt.org/api/v4", "公共交通のオープンデータ API") +@server("https://api-challenge2024.odpt.org/api/v4", "公共交通のオープンデータ API") +@server("https://api-public.odpt.org/api/v4", "公共交通のオープンデータ API") +@useAuth(ApiKeyAuth) +namespace OdptAPI; diff --git a/src/airplane/index.tsp b/src/models/airplane.tsp similarity index 60% rename from src/airplane/index.tsp rename to src/models/airplane.tsp index c851f8a..bd2ccc3 100644 --- a/src/airplane/index.tsp +++ b/src/models/airplane.tsp @@ -1,18 +1,4 @@ -import "@typespec/http"; -import "@typespec/rest"; import "../common/class.tsp"; -import "../common/error.tsp"; - -@service({ - title: "ODPT Airplane API", -}) -@server("https://api.odpt.org/api/v4", "API サーバー") -@doc("航空機に関連するデータを提供するAPI") -@useAuth(ApiKeyAuth) -namespace AirplaneAPI; - -using TypeSpec.Http; -using TypeSpec.Rest; @doc("空港の情報") model Airport { @@ -316,85 +302,3 @@ model FlightStatus { @doc("フライト状況(多言語対応)") `odpt:flightStatusTitle`?: MultilingualTitle; } -@route("/odpt:Airport") -interface AirportOperations { - @summary("空港情報の取得") - @get - getAirports( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - ): Airport[] | Common.Error; -} - -@route("/odpt:AirportTerminal") -interface AirportTerminalOperations { - @summary("空港ターミナル情報の取得") - @get - getAirportTerminals( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("空港を示すID") `odpt:airport`?: url, - ): AirportTerminal[] | Common.Error; -} - -@route("/odpt:FlightInformationArrival") -interface FlightInformationArrivalOperations { - @summary("フライト到着情報の取得") - @get - getFlightInformationArrivals( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("空港事業者または航空事業者を示すID") `odpt:operator`?: url, - @query @doc("エアラインの運行会社を示すID") `odpt:airline`?: url, - @query @doc("フライト状況を示すID") `odpt:flightStatus`?: url, - @query @doc("到着空港を示すID") `odpt:arrivalAirport`?: url, - @query @doc("到着空港ターミナルを示すID") `odpt:arrivalAirportTerminal`?: url, - @query @doc("到着空港ゲート番号") `odpt:arrivalGate`?: string, - @query @doc("出発地の空港を示すID") `odpt:originAirport`?: url, - ): FlightInformationArrival[] | Common.Error; -} - -@route("/odpt:FlightInformationDeparture") -interface FlightInformationDepartureOperations { - @summary("フライト出発情報の取得") - @get - getFlightInformationDepartures( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("空港事業者または航空事業者を示すID") `odpt:operator`?: url, - @query @doc("エアラインの運行会社を示すID") `odpt:airline`?: url, - @query @doc("フライト状況を示すID") `odpt:flightStatus`?: url, - @query @doc("出発空港を示すID") `odpt:departureAirport`?: url, - @query @doc("出発空港ターミナルを示すID") `odpt:departureAirportTerminal`?: url, - @query @doc("出発空港ゲート番号") `odpt:departureGate`?: string, - @query @doc("目的地の空港を示すID") `odpt:destinationAirport`?: url, - ): FlightInformationDeparture[] | Common.Error; -} - -@route("/odpt:FlightSchedule") -interface FlightScheduleOperations { - @summary("フライト時刻表の取得") - @get - getFlightSchedules( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("空港事業者または航空事業者を示すID") `odpt:operator`?: url, - @query @doc("運行日を示すID") `odpt:calendar`?: url, - @query @doc("出発地の空港を示すID") `odpt:originAirport`?: url, - @query @doc("目的地の空港を示すID") `odpt:destinationAirport`?: url, - ): FlightSchedule[] | Common.Error; -} - -@route("/odpt:FlightStatus") -interface FlightStatusOperations { - @summary("フライト状況定義の取得") - @get - getFlightStatuses( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - ): FlightStatus[] | Common.Error; -} diff --git a/src/bus/index.tsp b/src/models/bus.tsp similarity index 78% rename from src/bus/index.tsp rename to src/models/bus.tsp index 73eecc9..28abe33 100644 --- a/src/bus/index.tsp +++ b/src/models/bus.tsp @@ -1,18 +1,4 @@ -import "@typespec/http"; -import "@typespec/rest"; import "../common/class.tsp"; -import "../common/error.tsp"; - -@service({ - title: "ODPT Bus API", -}) -@server("https://api.odpt.org/api/v4", "API サーバー") -@doc("バスに関連するデータを提供するAPI") -@useAuth(ApiKeyAuth) -namespace BusAPI; - -using TypeSpec.Http; -using TypeSpec.Rest; enum BusDoorStatus { @doc("開いている") @@ -633,233 +619,3 @@ model BusstopPoleTimetableObject { @example("南大沢駅行") `odpt:note`?: string; } - -@route("/odpt:Bus") -interface BusOperation { - @summary("バス車両の運行情報") - @get - getBuses( - @query - @doc("開発者サイトにて提供されるアクセストークン") - `acl:consumerKey`: ConsumerKey, - - @query - @doc("データに付与された固有識別子") - `@id`?: URN, - - @query - @doc("データに付与された固有識別子の別名") - `owl:sameAs`?: `odpt.url`, - - @query - @doc("バス車両の運行系統のID") - `odpt:busroutePattern`?: `odpt.url`, - - @query - @doc("事業者のID") - `odpt:operator`?: `odpt.url`, - - @query - @doc("直近に通過した、あるいは停車中のバス停のID") - `odpt:fromBusstopPole`?: `odpt.url`, - - @query - @doc("次に到着するバス停のID") - `odpt:toBusstopPole`?: `odpt.url`, - ): Bus[] | Common.Error; -} - -@route("/odpt:BusTimetable") -interface BusTimetableOperations { - @summary("バスの便の時刻表") - @get - getBusTimetables( - @query - @doc("開発者サイトにて提供されるアクセストークン") - `acl:consumerKey`: ConsumerKey, - - @query - @doc("データに付与された固有識別子") - `@id`?: URN, - - @query - @doc("データに付与された固有識別子の別名") - `owl:sameAs`?: `odpt.url`, - - @query - @doc("事業者のID") - `odpt:operator`: `odpt.url`, - - @query - @doc("対応する系統のID") - `odpt:busroutePattern`?: `odpt.url`, - - @query - @doc("バス路線名称") - `dc:title`?: string, - - @query - @doc("カレンダーのID") - `odpt:calendar`?: `odpt.url`, - ): BusTimetable[] | Common.Error; -} - -@route("/odpt:BusroutePattern") -interface BusroutePatternOperations { - @summary("運行系統情報") - @get - getBusroutePatterns( - @query - @doc("開発者サイトにて提供されるアクセストークン") - `acl:consumerKey`: ConsumerKey, - - @query - @doc("データに付与された固有識別子") - `@id`?: URN, - - @query - @doc("データに付与された固有識別子の別名") - `owl:sameAs`?: `odpt.url`, - - @query - @doc("路線・系統名称") - `dc:title`?: string, - - @query - @doc("事業者のID") - `odpt:operator`?: `odpt.url`, - - @query - @doc("路線のID") - `odpt:busroute`?: string, - ): BusroutePattern[] | Common.Error; -} - -@route("/odpt:BusroutePatternFare") -interface BusroutePatternFareOperations { - @summary("運賃情報") - @get - getBusroutePatternFares( - @query - @doc("開発者サイトにて提供されるアクセストークン") - `acl:consumerKey`: ConsumerKey, - - @query - @doc("データに付与された固有識別子") - `@id`?: URN, - - @query - @doc("データに付与された固有識別子の別名") - `owl:sameAs`?: `odpt.url`, - - @query - @doc("事業者のID") - `odpt:operator`?: `odpt.url`, - - @query - @doc("乗車バス停(標柱)のID") - `odpt:fromBusstopPole`?: `odpt.url`, - - @query - @doc("降車バス停(標柱)のID") - `odpt:toBusstopPole`?: `odpt.url`, - - @query - @doc("切符利用時の運賃") - `odpt:ticketFare`?: integer, - - @query - @doc("切符利用時の子供運賃") - `odpt:childTicketFare`?: integer, - - @query - @doc("ICカード利用時の運賃") - `odpt:icCardFare`?: integer, - - @query - @doc("ICカード利用時の子供運賃") - `odpt:childIcCardFare`?: integer, - ): BusroutePatternFare[] | Common.Error; -} - -@route("/odpt:BusstopPole") -interface BusstopPoleOperations { - @summary("バス停情報") - @get - getBusstopPoles( - @query - @doc("開発者サイトにて提供されるアクセストークン") - `acl:consumerKey`: ConsumerKey, - - @query - @doc("データに付与された固有識別子") - `@id`?: URN, - - @query - @doc("データに付与された固有識別子の別名") - `owl:sameAs`?: `odpt.url`, - - @query - @doc("バス停名") - `dc:title`?: string, - - @query - @doc("標柱番号") - `odpt:busstopPoleNumber`?: string, - - @query - @doc("のりば番号") - `odpt:platformNumber`?: string, - - @query - @doc("標柱で発着する系統のID") - `odpt:busroutePattern`?: `odpt.url`, - - @query - @doc("事業者のID") - `odpt:operator`?: `odpt.url`, - ): BusstopPole[] | Common.Error; -} - -@route("/odpt:BusstopPoleTimetable") -interface BusstopPoleTimetableOperations { - @summary("バス停(標柱)時刻表") - @get - getBusstopPoleTimetables( - @query - @doc("開発者サイトにて提供されるアクセストークン") - `acl:consumerKey`: ConsumerKey, - - @query - @doc("データに付与された固有識別子") - `@id`?: URN, - - @query - @doc("データに付与された固有識別子の別名") - `owl:sameAs`?: `odpt.url`, - - @query - @doc("バス停(標柱)のID") - `odpt:busstopPole`?: `odpt.url`, - - @query - @doc("方面のID") - `odpt:busDirection`?: string, - - @query - @doc("路線のID") - `odpt:busroute`?: string, - - @query - @doc("事業者のID") - `odpt:operator`?: `odpt.url`, - - @query - @doc("カレンダーのID") - `odpt:calendar`?: `odpt.url`, - - @query - @doc("データ生成日付") - `dc:date`?: DateTime, - ): BusstopPoleTimetable[] | Common.Error; -} diff --git a/src/models/file.tsp b/src/models/file.tsp new file mode 100644 index 0000000..c9a8830 --- /dev/null +++ b/src/models/file.tsp @@ -0,0 +1,8 @@ +import "../common/class.tsp"; + +using TypeSpec.Http; + +@doc("ファイルリンクへのリダイレクト") +model FileRedirect { + @statusCode _: 302; +} diff --git a/src/search/index.tsp b/src/models/search.tsp similarity index 80% rename from src/search/index.tsp rename to src/models/search.tsp index 4c8924e..98d9e7a 100644 --- a/src/search/index.tsp +++ b/src/models/search.tsp @@ -1,18 +1,4 @@ -import "@typespec/http"; -import "@typespec/rest"; import "../common/class.tsp"; -import "../common/error.tsp"; - -@service({ - title: "ODPT Search API", -}) -@server("https://api.odpt.org/api/v4", "API サーバー") -@doc("ODPTの各種データ検索のためのAPI") -@useAuth(ApiKeyAuth) -namespace SearchAPI; - -using TypeSpec.Http; -using TypeSpec.Rest; @doc("データ検索APIのレスポンス") model DataSearchResponse { @@ -323,52 +309,3 @@ enum PlaceRDFType { @doc("バス停標柱情報") `odpt:BusstopPole`, } - -@route("/{RDF_TYPE}") -interface DataSearchOperations { - @summary("データ検索API") - @get - search( - @path - @doc("取得するデータの種別 odpt:クラス名") - RDF_TYPE: `odpt.url`, - - @query - @doc("rdf:typeで指定したクラスの持つプロパティを指定して、フィルタリングを行う") - PREDICATE?: string, - ): DataSearchResponse[] | Common.Error; -} - -@route("/{RDF_TYPE}.json") -interface DataDumpOperations { - @summary("データダンプAPI") - @get - dump( - @path @doc("取得するデータの種別 odpt:クラス名") RDF_TYPE: DumpRDFType, - ): DumpResponse[] | Common.Error; -} - -@route("/datapoints/{DATA_URI}") -interface DataRetrieveOperations { - @summary("データ取得API") - @get - retrieve( - @path @doc("取得するデータのURI") DATA_URI: URN | `odpt.url`, - ): RetrieveResponse[] | Common.Error; -} - -@route("/places/{RDF_TYPE}") -interface PlaceSearchOperations { - @summary("地物情報検索API") - @get - search( - @path @doc("取得するデータの種別") RDF_TYPE: PlaceRDFType, - @query @doc("取得する範囲の中心緯度、10進数表記、測地系はWGS84") lat: float, - @query @doc("取得する範囲の中心経度、10進数表記、測地系はWGS84") lon: float, - @query @doc("取得する範囲の半径をメートルで指定、0-4000mの範囲") radius: integer, - - @query - @doc("rdf:typeで指定したクラスの持つプロパティを指定して、フィルタリングを行う") - PREDICATE?: string, - ): PlaceSearchResponse[] | Common.Error; -} diff --git a/src/train/index.tsp b/src/models/train.tsp similarity index 77% rename from src/train/index.tsp rename to src/models/train.tsp index 213ce11..00fc62d 100644 --- a/src/train/index.tsp +++ b/src/models/train.tsp @@ -1,18 +1,4 @@ -import "@typespec/http"; -import "@typespec/rest"; import "../common/class.tsp"; -import "../common/error.tsp"; - -@service({ - title: "ODPT Train API", -}) -@server("https://api.odpt.org/api/v4", "API サーバー") -@doc("鉄道に関連するデータを提供するAPI") -@useAuth(ApiKeyAuth) -namespace TrainAPI; - -using TypeSpec.Http; -using TypeSpec.Rest; @doc("駅の乗降人員数または乗車人員数") model PassengerSurvey { @@ -814,141 +800,3 @@ model TrainType { @example(#{ ja: "普通", en: "Local" }) `odpt:trainTypeTitle`?: MultilingualTitle; } - -@route("/odpt:PassengerSurvey") -interface PassengerSurveyOperations { - @summary("駅の乗降人員数を取得する") - @get - getPassengerSurveys( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, - @query @doc("駅を表すID") `odpt:station`?: `odpt.url`, - @query @doc("路線を表すID") `odpt:railway`?: `odpt.url`, - ): PassengerSurvey[] | Common.Error; -} - -@route("/odpt:RailDirection") -interface RailDirectionOperations { - @summary("進行方向の定義を取得する") - @get - getRailDirections( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - ): RailDirection[] | Common.Error; -} - -@route("/odpt:Railway") -interface RailwayOperations { - @summary("路線情報を取得する") - @get - getRailways( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("路線名") `dc:title`?: string, - @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, - @query @doc("路線コード、路線シンボル表記") `odpt:lineCode`?: string, - ): Railway[] | Common.Error; -} - -@route("/odpt:RailwayFare") -interface RailwayFareOperations { - @summary("2駅間の運賃を取得する") - @get - getRailwayFares( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, - @query @doc("出発駅のID") `odpt:fromStation`?: `odpt.url`, - @query @doc("到着駅のID") `odpt:toStation`?: `odpt.url`, - ): RailwayFare[] | Common.Error; -} - -@route("/odpt:Station") -interface StationOperations { - @summary("駅情報を取得する") - @get - getStations( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("駅名") `dc:title`?: string, - @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, - @query @doc("駅が存在する路線ID") `odpt:railway`?: `odpt.url`, - @query @doc("駅ナンバリング") `odpt:stationCode`?: string, - ): Station[] | Common.Error; -} - -@route("/odpt:StationTimetable") -interface StationTimetableOperations { - @summary("駅時刻表を取得する") - @get - getStationTimetables( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("駅を表すID") `odpt:station`?: `odpt.url`, - @query @doc("路線を表すID") `odpt:railway`?: `odpt.url`, - @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, - @query @doc("進行方向を表すID") `odpt:railDirection`?: `odpt.url`, - @query @doc("実施日を表すID") `odpt:calendar`?: `odpt.url`, - @query @doc("特定日付の時刻表を取得") `dc:date`?: DateTime, - ): StationTimetable[] | Common.Error; -} - -@route("/odpt:Train") -interface TrainOperations { - @summary("列車情報(列車の位置情報)を取得する") - @get - getTrains( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("列車情報を配信する事業者のID") `odpt:operator`?: `odpt.url`, - @query @doc("当該列車が運行している路線のID") `odpt:railway`?: `odpt.url`, - ): Train[] | Common.Error; -} - -@route("/odpt:TrainInformation") -interface TrainInformationOperations { - @summary("列車運行情報を取得する") - @get - getTrainInformation( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("運行情報を配信する事業者のID") `odpt:operator`?: `odpt.url`, - @query @doc("運行情報が発生した路線のID") `odpt:railway`?: `odpt.url`, - ): TrainInformation[] | Common.Error; -} - -@route("/odpt:TrainTimetable") -interface TrainTimetableOperations { - @summary("列車時刻表を取得する") - @get - getTrainTimetables( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("固有識別子") `@id`?: URN, - @query @doc("固有識別子別名") `owl:sameAs`?: `odpt.url`, - @query @doc("列車番号") `odpt:trainNumber`?: string, - @query @doc("路線のID") `odpt:railway`?: `odpt.url`, - @query @doc("運行事業者のID") `odpt:operator`?: `odpt.url`, - @query @doc("列車種別ID") `odpt:trainType`?: `odpt.url`, - @query @doc("該当する列車ID") `odpt:train`?: `odpt.url`, - @query @doc("特定のカレンダー情報ID") `odpt:calendar`?: `odpt.url`, - ): TrainTimetable[] | Common.Error; -} - -@route("/odpt:TrainType") -interface TrainTypeOperations { - @summary("列車種別の定義を取得する") - @get - getTrainTypes( - @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, - @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, - @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, - ): TrainType[] | Common.Error; -} diff --git a/src/routes/airplane.tsp b/src/routes/airplane.tsp new file mode 100644 index 0000000..0bab047 --- /dev/null +++ b/src/routes/airplane.tsp @@ -0,0 +1,88 @@ +import "../models/airplane.tsp"; + +using TypeSpec.Http; + +namespace OdptAPI; + +@route("/odpt:Airport") +interface AirportOperations { + @summary("空港情報の取得") + @get + getAirports( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + ): Airport[] | Common.Error; +} + +@route("/odpt:AirportTerminal") +interface AirportTerminalOperations { + @summary("空港ターミナル情報の取得") + @get + getAirportTerminals( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("空港を示すID") `odpt:airport`?: url, + ): AirportTerminal[] | Common.Error; +} + +@route("/odpt:FlightInformationArrival") +interface FlightInformationArrivalOperations { + @summary("フライト到着情報の取得") + @get + getFlightInformationArrivals( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("空港事業者または航空事業者を示すID") `odpt:operator`?: url, + @query @doc("エアラインの運行会社を示すID") `odpt:airline`?: url, + @query @doc("フライト状況を示すID") `odpt:flightStatus`?: url, + @query @doc("到着空港を示すID") `odpt:arrivalAirport`?: url, + @query @doc("到着空港ターミナルを示すID") `odpt:arrivalAirportTerminal`?: url, + @query @doc("到着空港ゲート番号") `odpt:arrivalGate`?: string, + @query @doc("出発地の空港を示すID") `odpt:originAirport`?: url, + ): FlightInformationArrival[] | Common.Error; +} + +@route("/odpt:FlightInformationDeparture") +interface FlightInformationDepartureOperations { + @summary("フライト出発情報の取得") + @get + getFlightInformationDepartures( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("空港事業者または航空事業者を示すID") `odpt:operator`?: url, + @query @doc("エアラインの運行会社を示すID") `odpt:airline`?: url, + @query @doc("フライト状況を示すID") `odpt:flightStatus`?: url, + @query @doc("出発空港を示すID") `odpt:departureAirport`?: url, + @query @doc("出発空港ターミナルを示すID") `odpt:departureAirportTerminal`?: url, + @query @doc("出発空港ゲート番号") `odpt:departureGate`?: string, + @query @doc("目的地の空港を示すID") `odpt:destinationAirport`?: url, + ): FlightInformationDeparture[] | Common.Error; +} + +@route("/odpt:FlightSchedule") +interface FlightScheduleOperations { + @summary("フライト時刻表の取得") + @get + getFlightSchedules( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("空港事業者または航空事業者を示すID") `odpt:operator`?: url, + @query @doc("運行日を示すID") `odpt:calendar`?: url, + @query @doc("出発地の空港を示すID") `odpt:originAirport`?: url, + @query @doc("目的地の空港を示すID") `odpt:destinationAirport`?: url, + ): FlightSchedule[] | Common.Error; +} + +@route("/odpt:FlightStatus") +interface FlightStatusOperations { + @summary("フライト状況定義の取得") + @get + getFlightStatuses( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + ): FlightStatus[] | Common.Error; +} diff --git a/src/routes/bus.tsp b/src/routes/bus.tsp new file mode 100644 index 0000000..f13a976 --- /dev/null +++ b/src/routes/bus.tsp @@ -0,0 +1,235 @@ +import "../models/bus.tsp"; + +using TypeSpec.Http; + +namespace OdptAPI; + +@route("/odpt:Bus") +interface BusOperation { + @summary("バス車両の運行情報") + @get + getBuses( + @query + @doc("開発者サイトにて提供されるアクセストークン") + `acl:consumerKey`: ConsumerKey, + + @query + @doc("データに付与された固有識別子") + `@id`?: URN, + + @query + @doc("データに付与された固有識別子の別名") + `owl:sameAs`?: `odpt.url`, + + @query + @doc("バス車両の運行系統のID") + `odpt:busroutePattern`?: `odpt.url`, + + @query + @doc("事業者のID") + `odpt:operator`?: `odpt.url`, + + @query + @doc("直近に通過した、あるいは停車中のバス停のID") + `odpt:fromBusstopPole`?: `odpt.url`, + + @query + @doc("次に到着するバス停のID") + `odpt:toBusstopPole`?: `odpt.url`, + ): Bus[] | Common.Error; +} + +@route("/odpt:BusTimetable") +interface BusTimetableOperations { + @summary("バスの便の時刻表") + @get + getBusTimetables( + @query + @doc("開発者サイトにて提供されるアクセストークン") + `acl:consumerKey`: ConsumerKey, + + @query + @doc("データに付与された固有識別子") + `@id`?: URN, + + @query + @doc("データに付与された固有識別子の別名") + `owl:sameAs`?: `odpt.url`, + + @query + @doc("事業者のID") + `odpt:operator`: `odpt.url`, + + @query + @doc("対応する系統のID") + `odpt:busroutePattern`?: `odpt.url`, + + @query + @doc("バス路線名称") + `dc:title`?: string, + + @query + @doc("カレンダーのID") + `odpt:calendar`?: `odpt.url`, + ): BusTimetable[] | Common.Error; +} + +@route("/odpt:BusroutePattern") +interface BusroutePatternOperations { + @summary("運行系統情報") + @get + getBusroutePatterns( + @query + @doc("開発者サイトにて提供されるアクセストークン") + `acl:consumerKey`: ConsumerKey, + + @query + @doc("データに付与された固有識別子") + `@id`?: URN, + + @query + @doc("データに付与された固有識別子の別名") + `owl:sameAs`?: `odpt.url`, + + @query + @doc("路線・系統名称") + `dc:title`?: string, + + @query + @doc("事業者のID") + `odpt:operator`?: `odpt.url`, + + @query + @doc("路線のID") + `odpt:busroute`?: string, + ): BusroutePattern[] | Common.Error; +} + +@route("/odpt:BusroutePatternFare") +interface BusroutePatternFareOperations { + @summary("運賃情報") + @get + getBusroutePatternFares( + @query + @doc("開発者サイトにて提供されるアクセストークン") + `acl:consumerKey`: ConsumerKey, + + @query + @doc("データに付与された固有識別子") + `@id`?: URN, + + @query + @doc("データに付与された固有識別子の別名") + `owl:sameAs`?: `odpt.url`, + + @query + @doc("事業者のID") + `odpt:operator`?: `odpt.url`, + + @query + @doc("乗車バス停(標柱)のID") + `odpt:fromBusstopPole`?: `odpt.url`, + + @query + @doc("降車バス停(標柱)のID") + `odpt:toBusstopPole`?: `odpt.url`, + + @query + @doc("切符利用時の運賃") + `odpt:ticketFare`?: integer, + + @query + @doc("切符利用時の子供運賃") + `odpt:childTicketFare`?: integer, + + @query + @doc("ICカード利用時の運賃") + `odpt:icCardFare`?: integer, + + @query + @doc("ICカード利用時の子供運賃") + `odpt:childIcCardFare`?: integer, + ): BusroutePatternFare[] | Common.Error; +} + +@route("/odpt:BusstopPole") +interface BusstopPoleOperations { + @summary("バス停情報") + @get + getBusstopPoles( + @query + @doc("開発者サイトにて提供されるアクセストークン") + `acl:consumerKey`: ConsumerKey, + + @query + @doc("データに付与された固有識別子") + `@id`?: URN, + + @query + @doc("データに付与された固有識別子の別名") + `owl:sameAs`?: `odpt.url`, + + @query + @doc("バス停名") + `dc:title`?: string, + + @query + @doc("標柱番号") + `odpt:busstopPoleNumber`?: string, + + @query + @doc("のりば番号") + `odpt:platformNumber`?: string, + + @query + @doc("標柱で発着する系統のID") + `odpt:busroutePattern`?: `odpt.url`, + + @query + @doc("事業者のID") + `odpt:operator`?: `odpt.url`, + ): BusstopPole[] | Common.Error; +} + +@route("/odpt:BusstopPoleTimetable") +interface BusstopPoleTimetableOperations { + @summary("バス停(標柱)時刻表") + @get + getBusstopPoleTimetables( + @query + @doc("開発者サイトにて提供されるアクセストークン") + `acl:consumerKey`: ConsumerKey, + + @query + @doc("データに付与された固有識別子") + `@id`?: URN, + + @query + @doc("データに付与された固有識別子の別名") + `owl:sameAs`?: `odpt.url`, + + @query + @doc("バス停(標柱)のID") + `odpt:busstopPole`?: `odpt.url`, + + @query + @doc("方面のID") + `odpt:busDirection`?: string, + + @query + @doc("路線のID") + `odpt:busroute`?: string, + + @query + @doc("事業者のID") + `odpt:operator`?: `odpt.url`, + + @query + @doc("カレンダーのID") + `odpt:calendar`?: `odpt.url`, + + @query + @doc("データ生成日付") + `dc:date`?: DateTime, + ): BusstopPoleTimetable[] | Common.Error; +} diff --git a/src/routes/file.tsp b/src/routes/file.tsp new file mode 100644 index 0000000..d4a39d7 --- /dev/null +++ b/src/routes/file.tsp @@ -0,0 +1,17 @@ +import "../models/file.tsp"; +import "../common/error.tsp"; + +using TypeSpec.Http; + +namespace OdptAPI; + +@doc("各社提供ファイル取得用API") +@route("/files/{filePath}") +interface FilesOperations { + @summary("ファイルを取得する") + @get + getFiles( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @path @doc("ファイルパス") filePath: string, + ): FileRedirect | Common.Error; +} diff --git a/src/routes/index.tsp b/src/routes/index.tsp new file mode 100644 index 0000000..86e9acd --- /dev/null +++ b/src/routes/index.tsp @@ -0,0 +1,35 @@ +import "@typespec/http"; +import "../common/class.tsp"; +import "../common/error.tsp"; + +import "./train.tsp"; +import "./bus.tsp"; +import "./airplane.tsp"; +import "./file.tsp"; +import "./search.tsp"; + +using TypeSpec.Http; + +namespace OdptAPI; + +@route("/odpt/Calendar") +interface CalendarOperations { + @doc("曜日・日付区分(odpt:Calendar)の内容を取得する") + @get + getCalendars( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: url, + ): Calendar[] | Common.Error; +} + +@route("/Operator") +interface OperatorOperations { + @doc("公共交通機関の事業者(odpt:Operator)の内容を取得する") + @get + getOperators( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: url, + ): Operator[] | Common.Error; +} diff --git a/src/routes/search.tsp b/src/routes/search.tsp new file mode 100644 index 0000000..a421742 --- /dev/null +++ b/src/routes/search.tsp @@ -0,0 +1,55 @@ +import "../models/search.tsp"; +import "../common/error.tsp"; + +using TypeSpec.Http; + +namespace OdptAPI; + +@route("/{RDF_TYPE}") +interface DataSearchOperations { + @summary("データ検索API") + @get + search( + @path + @doc("取得するデータの種別 odpt:クラス名") + RDF_TYPE: `odpt.url`, + + @query + @doc("rdf:typeで指定したクラスの持つプロパティを指定して、フィルタリングを行う") + PREDICATE?: string, + ): DataSearchResponse[] | Common.Error; +} + +@route("/{RDF_TYPE}.json") +interface DataDumpOperations { + @summary("データダンプAPI") + @get + dump( + @path @doc("取得するデータの種別 odpt:クラス名") RDF_TYPE: DumpRDFType, + ): DumpResponse[] | Common.Error; +} + +@route("/datapoints/{DATA_URI}") +interface DataRetrieveOperations { + @summary("データ取得API") + @get + retrieve( + @path @doc("取得するデータのURI") DATA_URI: URN | `odpt.url`, + ): RetrieveResponse[] | Common.Error; +} + +@route("/places/{RDF_TYPE}") +interface PlaceSearchOperations { + @summary("地物情報検索API") + @get + search( + @path @doc("取得するデータの種別") RDF_TYPE: PlaceRDFType, + @query @doc("取得する範囲の中心緯度、10進数表記、測地系はWGS84") lat: float, + @query @doc("取得する範囲の中心経度、10進数表記、測地系はWGS84") lon: float, + @query @doc("取得する範囲の半径をメートルで指定、0-4000mの範囲") radius: integer, + + @query + @doc("rdf:typeで指定したクラスの持つプロパティを指定して、フィルタリングを行う") + PREDICATE?: string, + ): PlaceSearchResponse[] | Common.Error; +} diff --git a/src/routes/train.tsp b/src/routes/train.tsp new file mode 100644 index 0000000..fec89c7 --- /dev/null +++ b/src/routes/train.tsp @@ -0,0 +1,143 @@ +import "../models/train.tsp"; + +using TypeSpec.Http; + +namespace OdptAPI; + +@route("/odpt:PassengerSurvey") +interface PassengerSurveyOperations { + @summary("駅の乗降人員数を取得する") + @get + getPassengerSurveys( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, + @query @doc("駅を表すID") `odpt:station`?: `odpt.url`, + @query @doc("路線を表すID") `odpt:railway`?: `odpt.url`, + ): PassengerSurvey[] | Common.Error; +} + +@route("/odpt:RailDirection") +interface RailDirectionOperations { + @summary("進行方向の定義を取得する") + @get + getRailDirections( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + ): RailDirection[] | Common.Error; +} + +@route("/odpt:Railway") +interface RailwayOperations { + @summary("路線情報を取得する") + @get + getRailways( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("路線名") `dc:title`?: string, + @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, + @query @doc("路線コード、路線シンボル表記") `odpt:lineCode`?: string, + ): Railway[] | Common.Error; +} + +@route("/odpt:RailwayFare") +interface RailwayFareOperations { + @summary("2駅間の運賃を取得する") + @get + getRailwayFares( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, + @query @doc("出発駅のID") `odpt:fromStation`?: `odpt.url`, + @query @doc("到着駅のID") `odpt:toStation`?: `odpt.url`, + ): RailwayFare[] | Common.Error; +} + +@route("/odpt:Station") +interface StationOperations { + @summary("駅情報を取得する") + @get + getStations( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("駅名") `dc:title`?: string, + @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, + @query @doc("駅が存在する路線ID") `odpt:railway`?: `odpt.url`, + @query @doc("駅ナンバリング") `odpt:stationCode`?: string, + ): Station[] | Common.Error; +} + +@route("/odpt:StationTimetable") +interface StationTimetableOperations { + @summary("駅時刻表を取得する") + @get + getStationTimetables( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("駅を表すID") `odpt:station`?: `odpt.url`, + @query @doc("路線を表すID") `odpt:railway`?: `odpt.url`, + @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, + @query @doc("進行方向を表すID") `odpt:railDirection`?: `odpt.url`, + @query @doc("実施日を表すID") `odpt:calendar`?: `odpt.url`, + @query @doc("特定日付の時刻表を取得") `dc:date`?: DateTime, + ): StationTimetable[] | Common.Error; +} + +@route("/odpt:Train") +interface TrainOperations { + @summary("列車情報(列車の位置情報)を取得する") + @get + getTrains( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("列車情報を配信する事業者のID") `odpt:operator`?: `odpt.url`, + @query @doc("当該列車が運行している路線のID") `odpt:railway`?: `odpt.url`, + ): Train[] | Common.Error; +} + +@route("/odpt:TrainInformation") +interface TrainInformationOperations { + @summary("列車運行情報を取得する") + @get + getTrainInformation( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("運行情報を配信する事業者のID") `odpt:operator`?: `odpt.url`, + @query @doc("運行情報が発生した路線のID") `odpt:railway`?: `odpt.url`, + ): TrainInformation[] | Common.Error; +} + +@route("/odpt:TrainTimetable") +interface TrainTimetableOperations { + @summary("列車時刻表を取得する") + @get + getTrainTimetables( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("固有識別子") `@id`?: URN, + @query @doc("固有識別子別名") `owl:sameAs`?: `odpt.url`, + @query @doc("列車番号") `odpt:trainNumber`?: string, + @query @doc("路線のID") `odpt:railway`?: `odpt.url`, + @query @doc("運行事業者のID") `odpt:operator`?: `odpt.url`, + @query @doc("列車種別ID") `odpt:trainType`?: `odpt.url`, + @query @doc("該当する列車ID") `odpt:train`?: `odpt.url`, + @query @doc("特定のカレンダー情報ID") `odpt:calendar`?: `odpt.url`, + ): TrainTimetable[] | Common.Error; +} + +@route("/odpt:TrainType") +interface TrainTypeOperations { + @summary("列車種別の定義を取得する") + @get + getTrainTypes( + @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, + @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, + @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, + ): TrainType[] | Common.Error; +} From 0006f339565ce32bacece8692b63fbf240dd9d89 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:05:51 +0900 Subject: [PATCH 02/21] =?UTF-8?q?refactor:=20`URN`=E3=82=92`odpt.urn`?= =?UTF-8?q?=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/class.tsp | 6 +++--- src/models/airplane.tsp | 12 ++++++------ src/models/bus.tsp | 12 ++++++------ src/models/search.tsp | 8 ++++---- src/models/train.tsp | 20 ++++++++++---------- src/routes/airplane.tsp | 8 ++++---- src/routes/bus.tsp | 12 ++++++------ src/routes/index.tsp | 4 ++-- src/routes/search.tsp | 2 +- src/routes/train.tsp | 16 ++++++++-------- 10 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/common/class.tsp b/src/common/class.tsp index ef4e28c..6c2a7b9 100644 --- a/src/common/class.tsp +++ b/src/common/class.tsp @@ -2,7 +2,7 @@ scalar ConsumerKey extends string; @doc("固有識別子") -scalar URN extends string; +scalar `odpt.urn` extends string; @doc("固有識別子の別名 多くが`odpt.hoge:fuga`形式") scalar `odpt.url` extends string; @@ -33,7 +33,7 @@ model Calendar { `@context`: url; @doc("固有識別子(ucode)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス指定") `@type`: "odpt:Calendar"; @@ -58,7 +58,7 @@ model Operator { `@context`: url; @doc("固有識別子(ucode)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス指定") `@type`: "odpt:Operator"; diff --git a/src/models/airplane.tsp b/src/models/airplane.tsp index bd2ccc3..c854c24 100644 --- a/src/models/airplane.tsp +++ b/src/models/airplane.tsp @@ -6,7 +6,7 @@ model Airport { `@context`: url; @doc("固有識別子(ucode)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") `@type`: "odpt:Airport"; @@ -42,7 +42,7 @@ model AirportTerminal { `@context`: url; @doc("固有識別子(ucode)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") `@type`: "odpt:AirportTerminal"; @@ -78,7 +78,7 @@ model FlightInformationArrival { `@context`: url; @doc("固有識別子(ucode又はuuid)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス指定") `@type`: "odpt:FlightInformationArrival"; @@ -147,7 +147,7 @@ model FlightInformationDeparture { `@context`: url; @doc("固有識別子(ucode又はuuid)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス指定") `@type`: "odpt:FlightInformationDeparture"; @@ -252,7 +252,7 @@ model FlightSchedule { `@context`: url; @doc("固有識別子(ucode)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス指定") `@type`: "odpt:FlightSchedule"; @@ -285,7 +285,7 @@ model FlightStatus { `@context`: url; @doc("固有識別子(ucode)") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") `@type`: "odpt:FlightStatus"; diff --git a/src/models/bus.tsp b/src/models/bus.tsp index 28abe33..30caaff 100644 --- a/src/models/bus.tsp +++ b/src/models/bus.tsp @@ -48,7 +48,7 @@ model Bus { @doc("固有識別子") @example("urn:ucode:_00001C00000000000001000003533B23") - `@id`: URN; + `@id`: `odpt.urn`; @doc("バス運行情報のクラス名") @example("odpt:Bus") @@ -143,7 +143,7 @@ model BusTimetable { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C00000000000001000003A69FCCz") - `@id`: URN; + `@id`: `odpt.urn`; @doc("バス時刻表のクラス名、\"odpt:BusTimetable\"が入る") @example("odpt:BusTimetable") @@ -257,7 +257,7 @@ model BusroutePattern { @doc("固有識別子 (ucode)") @example("urn:ucode:_00001C0000000000000100000387F25A") - `@id`: URN; + `@id`: `odpt.urn`; @doc("バス路線情報のクラス名、\"odpt:BusroutePattern\"が入る") @example("odpt:BusroutePattern") @@ -360,7 +360,7 @@ model BusroutePatternFare { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C00000000000001000003A7A364") - `@id`: URN; + `@id`: `odpt.urn`; @doc("バス運賃のクラス名、\"odpt:BusroutePatternFare\"が入る") @example("odpt:BusroutePatternFare") @@ -435,7 +435,7 @@ model BusstopPole { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C0000000000000100000315AB88") - `@id`: URN; + `@id`: `odpt.urn`; @doc("バス停 (標柱) のクラス名、\"odpt:BusstopPole\"が入る") @example("odpt:BusstopPole") @@ -507,7 +507,7 @@ model BusstopPoleTimetable { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C00000000000001000003A67D78") - `@id`: URN; + `@id`: `odpt.urn`; @doc("バス停(標柱)時刻表のクラス名、\"odpt:BusstopPoleTimetable\"が入る") @example("odpt:BusstopPoleTimetable") diff --git a/src/models/search.tsp b/src/models/search.tsp index 98d9e7a..f2fb074 100644 --- a/src/models/search.tsp +++ b/src/models/search.tsp @@ -8,7 +8,7 @@ model DataSearchResponse { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD5D6") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:Train") @@ -79,7 +79,7 @@ model DumpResponse { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000031028E6") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:Station") @@ -102,7 +102,7 @@ model RetrieveResponse { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030C46CA") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:Station") @@ -176,7 +176,7 @@ model PlaceSearchResponse { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C00000000000001000003102C88") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:Station") diff --git a/src/models/train.tsp b/src/models/train.tsp index 00fc62d..925a2e5 100644 --- a/src/models/train.tsp +++ b/src/models/train.tsp @@ -8,7 +8,7 @@ model PassengerSurvey { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:PassengerSurvey") @@ -62,7 +62,7 @@ model RailDirection { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:RailDirection") @@ -93,7 +93,7 @@ model Railway { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:Railway") @@ -170,7 +170,7 @@ model RailwayFare { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:RailwayFare") @@ -245,7 +245,7 @@ model Station { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:Station") @@ -319,7 +319,7 @@ model StationTimetable { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:StationTimetable") @@ -456,7 +456,7 @@ model Train { @doc("固有識別子(ucode又はuuid)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:Train") @@ -551,7 +551,7 @@ model TrainInformation { @doc("固有識別子(ucode又はuuid)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:TrainInformation") @@ -634,7 +634,7 @@ model TrainTimetable { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:TrainTimetable") @@ -774,7 +774,7 @@ model TrainType { @doc("固有識別子(ucode)") @example("urn:ucode:_00001C000000000000010000030FD7E5") - `@id`: URN; + `@id`: `odpt.urn`; @doc("クラス名") @example("odpt:TrainType") diff --git a/src/routes/airplane.tsp b/src/routes/airplane.tsp index 0bab047..6c3f076 100644 --- a/src/routes/airplane.tsp +++ b/src/routes/airplane.tsp @@ -10,7 +10,7 @@ interface AirportOperations { @get getAirports( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, ): Airport[] | Common.Error; } @@ -21,7 +21,7 @@ interface AirportTerminalOperations { @get getAirportTerminals( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("空港を示すID") `odpt:airport`?: url, ): AirportTerminal[] | Common.Error; @@ -67,7 +67,7 @@ interface FlightScheduleOperations { @get getFlightSchedules( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("空港事業者または航空事業者を示すID") `odpt:operator`?: url, @query @doc("運行日を示すID") `odpt:calendar`?: url, @@ -82,7 +82,7 @@ interface FlightStatusOperations { @get getFlightStatuses( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, ): FlightStatus[] | Common.Error; } diff --git a/src/routes/bus.tsp b/src/routes/bus.tsp index f13a976..6194c0c 100644 --- a/src/routes/bus.tsp +++ b/src/routes/bus.tsp @@ -15,7 +15,7 @@ interface BusOperation { @query @doc("データに付与された固有識別子") - `@id`?: URN, + `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") @@ -50,7 +50,7 @@ interface BusTimetableOperations { @query @doc("データに付与された固有識別子") - `@id`?: URN, + `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") @@ -85,7 +85,7 @@ interface BusroutePatternOperations { @query @doc("データに付与された固有識別子") - `@id`?: URN, + `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") @@ -116,7 +116,7 @@ interface BusroutePatternFareOperations { @query @doc("データに付与された固有識別子") - `@id`?: URN, + `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") @@ -163,7 +163,7 @@ interface BusstopPoleOperations { @query @doc("データに付与された固有識別子") - `@id`?: URN, + `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") @@ -202,7 +202,7 @@ interface BusstopPoleTimetableOperations { @query @doc("データに付与された固有識別子") - `@id`?: URN, + `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") diff --git a/src/routes/index.tsp b/src/routes/index.tsp index 86e9acd..a505257 100644 --- a/src/routes/index.tsp +++ b/src/routes/index.tsp @@ -18,7 +18,7 @@ interface CalendarOperations { @get getCalendars( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: url, ): Calendar[] | Common.Error; } @@ -29,7 +29,7 @@ interface OperatorOperations { @get getOperators( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: url, ): Operator[] | Common.Error; } diff --git a/src/routes/search.tsp b/src/routes/search.tsp index a421742..fe01a6f 100644 --- a/src/routes/search.tsp +++ b/src/routes/search.tsp @@ -34,7 +34,7 @@ interface DataRetrieveOperations { @summary("データ取得API") @get retrieve( - @path @doc("取得するデータのURI") DATA_URI: URN | `odpt.url`, + @path @doc("取得するデータのURI") DATA_URI: `odpt.urn` | `odpt.url`, ): RetrieveResponse[] | Common.Error; } diff --git a/src/routes/train.tsp b/src/routes/train.tsp index fec89c7..9c7cce8 100644 --- a/src/routes/train.tsp +++ b/src/routes/train.tsp @@ -10,7 +10,7 @@ interface PassengerSurveyOperations { @get getPassengerSurveys( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, @query @doc("駅を表すID") `odpt:station`?: `odpt.url`, @@ -24,7 +24,7 @@ interface RailDirectionOperations { @get getRailDirections( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, ): RailDirection[] | Common.Error; } @@ -35,7 +35,7 @@ interface RailwayOperations { @get getRailways( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("路線名") `dc:title`?: string, @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, @@ -49,7 +49,7 @@ interface RailwayFareOperations { @get getRailwayFares( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, @query @doc("出発駅のID") `odpt:fromStation`?: `odpt.url`, @@ -63,7 +63,7 @@ interface StationOperations { @get getStations( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("駅名") `dc:title`?: string, @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, @@ -78,7 +78,7 @@ interface StationTimetableOperations { @get getStationTimetables( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("駅を表すID") `odpt:station`?: `odpt.url`, @query @doc("路線を表すID") `odpt:railway`?: `odpt.url`, @@ -119,7 +119,7 @@ interface TrainTimetableOperations { @get getTrainTimetables( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("固有識別子") `@id`?: URN, + @query @doc("固有識別子") `@id`?: `odpt.urn`, @query @doc("固有識別子別名") `owl:sameAs`?: `odpt.url`, @query @doc("列車番号") `odpt:trainNumber`?: string, @query @doc("路線のID") `odpt:railway`?: `odpt.url`, @@ -136,7 +136,7 @@ interface TrainTypeOperations { @get getTrainTypes( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, - @query @doc("データに付与された固有識別子") `@id`?: URN, + @query @doc("データに付与された固有識別子") `@id`?: `odpt.urn`, @query @doc("データに付与された固有識別子の別名") `owl:sameAs`?: `odpt.url`, @query @doc("事業者を表すID") `odpt:operator`?: `odpt.url`, ): TrainType[] | Common.Error; From 43bd6a2fe3bbfa29c7219d8c629f58970afd549d Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:07:58 +0900 Subject: [PATCH 03/21] =?UTF-8?q?refactor:=20=E5=85=A8=E8=A7=92=E6=8B=AC?= =?UTF-8?q?=E5=BC=A7=E3=81=AE=E4=BD=BF=E7=94=A8=E3=82=92=E3=82=84=E3=82=81?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/class.tsp | 8 ++++---- src/models/airplane.tsp | 22 +++++++++++----------- src/models/search.tsp | 6 +++--- src/models/train.tsp | 32 ++++++++++++++++---------------- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/common/class.tsp b/src/common/class.tsp index 6c2a7b9..3cee2f0 100644 --- a/src/common/class.tsp +++ b/src/common/class.tsp @@ -44,10 +44,10 @@ model Calendar { @doc("固有識別子") `owl:sameAs`: url; - @doc("カレンダー名称(日本語)") + @doc("カレンダー名称(日本語)") `dc:title`?: string; - @doc("カレンダー名称(多言語対応)") + @doc("カレンダー名称(多言語対応)") `odpt:calendarTitle`?: MultilingualTitle; } @@ -69,9 +69,9 @@ model Operator { @doc("固有識別子") `owl:sameAs`: url; - @doc("事業者名称(日本語)") + @doc("事業者名称(日本語)") `dc:title`?: string; - @doc("事業者名称(多言語対応)") + @doc("事業者名称(多言語対応)") `odpt:operatorTitle`?: MultilingualTitle; } diff --git a/src/models/airplane.tsp b/src/models/airplane.tsp index c854c24..64fba0d 100644 --- a/src/models/airplane.tsp +++ b/src/models/airplane.tsp @@ -17,10 +17,10 @@ model Airport { @doc("固有識別子") `owl:sameAs`: `odpt.url`; - @doc("空港名(日本語)") + @doc("空港名(日本語)") `dc:title`?: string; - @doc("空港名(多言語対応)") + @doc("空港名(多言語対応)") `odpt:airportTitle`?: MultilingualTitle; @doc("空港のターミナルを表す ID のリスト") @@ -53,10 +53,10 @@ model AirportTerminal { @doc("固有識別子") `owl:sameAs`: `odpt.url`; - @doc("空港ターミナル名(日本語)") + @doc("空港ターミナル名(日本語)") `dc:title`?: string; - @doc("空港ターミナル名(多言語対応)") + @doc("空港ターミナル名(多言語対応)") `odpt:airportTerminalTitle`?: MultilingualTitle; @doc("空港を示すID") @@ -104,10 +104,10 @@ model FlightInformationArrival { @doc("フライト状況を表すID") `odpt:flightStatus`?: url; - @doc("運行情報の要約(多言語対応)") + @doc("運行情報の要約(多言語対応)") `odpt:flightInformationSummary`?: MultilingualTitle; - @doc("運行情報の詳細(多言語対応)") + @doc("運行情報の詳細(多言語対応)") `odpt:flightInformationText`?: MultilingualTitle; @doc("定刻の到着時刻") @@ -173,10 +173,10 @@ model FlightInformationDeparture { @doc("フライト状況を表すID") `odpt:flightStatus`?: url; - @doc("運行情報の要約(多言語対応)") + @doc("運行情報の要約(多言語対応)") `odpt:flightInformationSummary`?: MultilingualTitle; - @doc("運行情報の詳細(多言語対応)") + @doc("運行情報の詳細(多言語対応)") `odpt:flightInformationText`?: MultilingualTitle; @doc("定刻の出発時刻") @@ -242,7 +242,7 @@ model FlightScheduleObject { @doc("データ適用終了日時") `odpt:isValidTo`?: DateTime; - @doc("注釈情報(多言語対応)") + @doc("注釈情報(多言語対応)") `odpt:note`?: MultilingualTitle; } @@ -296,9 +296,9 @@ model FlightStatus { @doc("固有識別子") `owl:sameAs`: `odpt.url`; - @doc("フライト状況(日本語)") + @doc("フライト状況(日本語)") `dc:title`?: string; - @doc("フライト状況(多言語対応)") + @doc("フライト状況(多言語対応)") `odpt:flightStatusTitle`?: MultilingualTitle; } diff --git a/src/models/search.tsp b/src/models/search.tsp index f2fb074..54a2a14 100644 --- a/src/models/search.tsp +++ b/src/models/search.tsp @@ -85,7 +85,7 @@ model DumpResponse { @example("odpt:Station") `@type`: string; - @doc("駅名(日本語)") + @doc("駅名(日本語)") @example("東京") `dc:title`: string; @@ -112,7 +112,7 @@ model RetrieveResponse { @example("2024-06-27T08:00:00+09:00") `dc:date`: DateTime; - @doc("駅名(日本語)") + @doc("駅名(日本語)") @example("上野") `dc:title`: string; @@ -186,7 +186,7 @@ model PlaceSearchResponse { @example("2024-03-27T09:00:00+09:00") `dc:date`: DateTime; - @doc("駅名(日本語)") + @doc("駅名(日本語)") @example("日本橋") `dc:title`: string; diff --git a/src/models/train.tsp b/src/models/train.tsp index 925a2e5..b46d7a4 100644 --- a/src/models/train.tsp +++ b/src/models/train.tsp @@ -76,16 +76,16 @@ model RailDirection { @example("odpt.RailDirection:Inbound") `owl:sameAs`: `odpt.url`; - @doc("進行方向(日本語)") + @doc("進行方向(日本語)") @example("上り") `dc:title`?: string; - @doc("進行方向(多言語対応)") + @doc("進行方向(多言語対応)") @example(#{ ja: "上り", en: "Inbound" }) `odpt:railDirectionTitle`?: MultilingualTitle; } -@doc("鉄道路線(運行系統)の情報") +@doc("鉄道路線(運行系統)の情報") model Railway { @doc("JSON-LD仕様に基づく @context のURL") @example("http://vocab.odpt.org/context_odpt.jsonld") @@ -107,15 +107,15 @@ model Railway { @example("odpt.Railway:JR-East.Yamanote") `owl:sameAs`: `odpt.url`; - @doc("路線名(日本語)") + @doc("路線名(日本語)") @example("山手線") `dc:title`: string; - @doc("路線名(多言語対応)") + @doc("路線名(多言語対応)") @example(#{ ja: "山手線", en: "Yamanote Line" }) `odpt:railwayTitle`?: MultilingualTitle; - @doc("路線名のよみがな(ひらがな表記)") + @doc("路線名のよみがな(ひらがな表記)") @example("やまのてせん") `odpt:kana`?: string; @@ -153,7 +153,7 @@ model StationOrder { @example("odpt.Station:TokyoMetro.Marunouchi.Tokyo") `odpt:station`: `odpt.url`; - @doc("駅名(多言語対応)") + @doc("駅名(多言語対応)") @example(#{ ja: "東京", en: "Tokyo" }) `odpt:stationTitle`?: MultilingualTitle; @@ -259,11 +259,11 @@ model Station { @example("odpt.Station:JR-East.Yamanote.Tokyo") `owl:sameAs`: `odpt.url`; - @doc("駅名(日本語)") + @doc("駅名(日本語)") @example("東京") `dc:title`?: string; - @doc("駅名(多言語対応)") + @doc("駅名(多言語対応)") @example(#{ ja: "東京", en: "Tokyo" }) `odpt:stationTitle`?: MultilingualTitle; @@ -349,7 +349,7 @@ model StationTimetable { @example("odpt.Railway:JR-East.ChuoRapid") `odpt:railway`: `odpt.url`; - @doc("路線名(多言語対応)") + @doc("路線名(多言語対応)") @example(#{ ja: "中央線快速", en: "Chuo Rapid" }) `odpt:railwayTitle`?: MultilingualTitle; @@ -357,7 +357,7 @@ model StationTimetable { @example("odpt.Station:JR-East.ChuoRapid.Tokyo") `odpt:station`?: `odpt.url`; - @doc("駅名(多言語対応)") + @doc("駅名(多言語対応)") @example(#{ ja: "東京", en: "Tokyo" }) `odpt:stationTitle`?: MultilingualTitle; @@ -369,11 +369,11 @@ model StationTimetable { @example("odpt.Calendar:Weekday") `odpt:calendar`?: `odpt.url`; - @doc("出発時刻、終着(行先)駅等の組のリスト") + @doc("出発時刻、終着(行先)駅等の組のリスト") @example(#[#{ `odpt:departureTime`: "06:00" }, #{ `odpt:departureTime`: "07:00" }]) `odpt:stationTimetableObject`: StationTimetableObject[]; - @doc("注釈情報(多言語対応)") + @doc("注釈情報(多言語対応)") @example(#{ ja: "日本語での注釈情報", en: "Note in English" }) `odpt:note`?: MultilingualTitle; } @@ -530,7 +530,7 @@ model Train { @example(1) `odpt:index`?: integer; - @doc("遅延時間(秒)") + @doc("遅延時間(秒)") @example(60) `odpt:delay`?: integer; @@ -792,11 +792,11 @@ model TrainType { @example("odpt.Operator:JR-East") `odpt:operator`: `odpt.url`; - @doc("列車種別(日本語)") + @doc("列車種別(日本語)") @example("普通") `dc:title`?: string; - @doc("列車種別(多言語対応)") + @doc("列車種別(多言語対応)") @example(#{ ja: "普通", en: "Local" }) `odpt:trainTypeTitle`?: MultilingualTitle; } From b7785249230b78c4c2af718f5288a60de5c778b4 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:02:31 +0900 Subject: [PATCH 04/21] =?UTF-8?q?chore(pnpm):=20npm-scripts=E3=82=92?= =?UTF-8?q?=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 11369d4..f84ad9c 100644 --- a/package.json +++ b/package.json @@ -3,17 +3,17 @@ "version": "0.1.0", "type": "module", "scripts": { - "dev": "pnpm dev:tsp & pnpm dev:docs", - "dev:tsp": "pnpm build:tsp --watch", - "dev:docs": "redocly preview-docs ./dist/@typespec/openapi3/openapi.$NAME.yaml", - "build": "pnpm build:tsp && pnpm build:docs", - "build:tsp": "tsp compile ./src --output-dir ./dist", - "build:docs": "redocly build-docs -o ./dist/doc/index.html", - "lint": "pnpm /^lint:.*/", - "lint:prettier": "pnpm run:prettier . --check", - "lint:redocly": "redocly lint ./dist/@typespec/openapi3/openapi.*.yaml", - "typecheck": "pnpm build:tsp --noEmit", - "run:prettier": "prettier --ignore-unknown --no-error-on-unmatched-pattern --cache" + "dev": "pnpm /^watch:.*/", + "watch:tsp": "tsp compile ./src/ --watch", + "watch:redocly": "redocly preview-docs", + "build": "pnpm build:tsp && pnpm build:redocly", + "build:tsp": "tsp compile ./src/", + "build:redocly": "redocly build-docs", + "check": "pnpm /^check:.*/", + "check:format": "prettier -c ./src/", + "check:lint": "redocly lint", + "fix": "pnpm /^fix:.*/", + "fix:format": "prettier -w ./src/" }, "peerDependencies": { "@typespec/compiler": "0.61.0", From 67c23d1850c2466a25c03489c54444841ebc16a2 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:04:16 +0900 Subject: [PATCH 05/21] =?UTF-8?q?chore(actions):=20npm-scripts=E3=81=AE?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=AB=E5=90=88=E3=82=8F=E3=81=9B=E3=81=A6?= =?UTF-8?q?workflow=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 62ee32d..636d491 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -25,8 +25,8 @@ jobs: - name: install dependencies run: pnpm install - name: check formatting - run: pnpm lint:prettier + run: pnpm check:format - name: build run: pnpm build:tsp - name: lint openapi - run: pnpm lint:redocly + run: pnpm check:lint From e8f6b7af66f05854fc8fcc3fdee9f6a100b7db16 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:05:14 +0900 Subject: [PATCH 06/21] =?UTF-8?q?chore(tsp):=20typespec=E3=81=AEconfig?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tspconfig.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tspconfig.yaml b/tspconfig.yaml index a3fe48f..964c067 100644 --- a/tspconfig.yaml +++ b/tspconfig.yaml @@ -1,2 +1,8 @@ emit: - "@typespec/openapi3" + +options: + "@typespec/openapi3": + emitter-output-dir: "{output-dir}/openapi" + +output-dir: "{cwd}/dist" From a0736a1eb9a122deb2f79e7286cb5fe48e5f2c64 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:05:47 +0900 Subject: [PATCH 07/21] =?UTF-8?q?chore(redocly):=20redocly=E3=81=AEconfig?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- redocly.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 redocly.yaml diff --git a/redocly.yaml b/redocly.yaml new file mode 100644 index 0000000..d507c5c --- /dev/null +++ b/redocly.yaml @@ -0,0 +1,6 @@ +extends: + - recommended + +apis: + odpt@v4: + root: ./dist/openapi/openapi.yaml From ddc49e976d75f585d4b0a90d361a7b8f67f0cf07 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:06:43 +0900 Subject: [PATCH 08/21] =?UTF-8?q?chore(prettier):=20config=E3=82=92mjs?= =?UTF-8?q?=E3=81=8B=E3=82=89json=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .prettierrc.json | 18 ++++++++++++++++++ .prettierrc.mjs | 13 ------------- 2 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 .prettierrc.json delete mode 100644 .prettierrc.mjs diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..087accf --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "trailingComma": "es5", + "semi": false, + "singleQuote": false, + + "plugins": ["@typespec/prettier-plugin-typespec"], + "overrides": [ + { + "files": "*.tsp", + "options": { "parser": "typespec" } + } + ] +} diff --git a/.prettierrc.mjs b/.prettierrc.mjs deleted file mode 100644 index bd6e374..0000000 --- a/.prettierrc.mjs +++ /dev/null @@ -1,13 +0,0 @@ -/** @type {import("prettier").Config} */ -const prettierConfig = { - printWidth: 100, - tabWidth: 2, - useTabs: false, - trailingComma: "es5", - semi: false, - singleQuote: false, - plugins: ["@typespec/prettier-plugin-typespec"], - overrides: [{ files: "*.tsp", options: { parser: "typespec" } }], -} - -export default prettierConfig From 63236efc13333f6d4355ae17a4ca5c268dceb6c0 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:08:37 +0900 Subject: [PATCH 09/21] =?UTF-8?q?chore(prettier):=20=E4=B8=8D=E8=A6=81?= =?UTF-8?q?=E3=81=AAprettierignore=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .prettierignore | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .prettierignore diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 69c00d3..0000000 --- a/.prettierignore +++ /dev/null @@ -1,7 +0,0 @@ -# depenencies -node_modules/ - -# auto-generated -pnpm-lock.yaml -dist/ -tsp-output/ \ No newline at end of file From f6cfbbfeea21efd11780be3f82dd36e08502847d Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:30:01 +0900 Subject: [PATCH 10/21] =?UTF-8?q?docs(readme):=20readme=E3=82=92update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a9478ea..217fe1d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ # ODPT OpenAPI +OpenAPI specification of ODPT API + +## About ODPT API + +- [Official Document](https://developer.odpt.org/documents) +- [Datasets](https://ckan.odpt.org/dataset) + ## Development ### Requirements @@ -15,16 +22,23 @@ pnpm i ``` -2. Start Typespec watcher and documentation server from openapi +2. (Optional) Install VSCode Extension -selectedAPIName is the name of `openapi.${selectedAPIName}.yaml` +```bash +pnpm tsp code install +``` + +3. Start TypeSpec watcher and Document server ```bash -NAME=${selectedAPIName} pnpm dev +pnpm dev ``` +Document page will be available at [`http://127.0.0.1:8080`](http://127.0.0.1:8080) + ### Scripts -- `pnpm dev` - 2. Start Typespec watcher and documentation server from openapi -- `pnpm build` - Build the tsp files -- `pnpm lint` - Lint the tsp files and openapi files +- `pnpm dev`: Run TypeSpec watcher and Document Server +- `pnpm build`: Compile TypeSpec and Build document page +- `pnpm check`: Check TypeSpec format and OpenAPI lint +- `pnpm fix`: Fix TypeSpec format From 4245053ef60b6d844666e9bb9cb400f3e29534c9 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:31:03 +0900 Subject: [PATCH 11/21] =?UTF-8?q?fix:=20server=E3=81=AE=E6=83=85=E5=A0=B1?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.tsp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main.tsp b/src/main.tsp index 0b1f5a4..c7867fa 100644 --- a/src/main.tsp +++ b/src/main.tsp @@ -7,7 +7,6 @@ using TypeSpec.Http; title: "ODPT API", }) @server("https://api.odpt.org/api/v4", "公共交通のオープンデータ API") -@server("https://api-challenge2024.odpt.org/api/v4", "公共交通のオープンデータ API") -@server("https://api-public.odpt.org/api/v4", "公共交通のオープンデータ API") +@server("https://api-challenge2024.odpt.org/api/v4", "公共交通のオープンデータ API (チャレンジ2024専用)") @useAuth(ApiKeyAuth) namespace OdptAPI; From 0594e2e6bf9250b9d526fff23433ef2fd31cddfd Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:39:44 +0900 Subject: [PATCH 12/21] =?UTF-8?q?chore(pnpm):=20`private:=20true`=E3=82=92?= =?UTF-8?q?=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index f84ad9c..4d8594e 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,5 @@ "@typespec/prettier-plugin-typespec": "^0.61.0", "@typespec/rest": "0.61.0", "prettier": "^3.3.3" - }, - "private": true + } } From f13473a019947d5f460561ccec36fce26a4737a9 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:42:56 +0900 Subject: [PATCH 13/21] fix: adjust format --- src/main.tsp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main.tsp b/src/main.tsp index c7867fa..df4e423 100644 --- a/src/main.tsp +++ b/src/main.tsp @@ -7,6 +7,9 @@ using TypeSpec.Http; title: "ODPT API", }) @server("https://api.odpt.org/api/v4", "公共交通のオープンデータ API") -@server("https://api-challenge2024.odpt.org/api/v4", "公共交通のオープンデータ API (チャレンジ2024専用)") +@server( + "https://api-challenge2024.odpt.org/api/v4", + "公共交通のオープンデータ API (チャレンジ2024専用)" +) @useAuth(ApiKeyAuth) namespace OdptAPI; From e109b3d4856573def0d9c9980ee393e4ad1631ab Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:43:02 +0900 Subject: [PATCH 14/21] 1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4d8594e..3fc0aa9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "odpt-openapi", - "version": "0.1.0", + "version": "1.0.0", "type": "module", "scripts": { "dev": "pnpm /^watch:.*/", From 41baa0dc259ec050c30f36abca1b3df62e885e1c Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:50:04 +0900 Subject: [PATCH 15/21] =?UTF-8?q?fix:=20endpoint=E3=81=AB`doc`=E3=81=AE?= =?UTF-8?q?=E4=BB=A3=E3=82=8F=E3=82=8A=E3=81=AB`summary`=E3=82=92=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/index.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/index.tsp b/src/routes/index.tsp index a505257..526e493 100644 --- a/src/routes/index.tsp +++ b/src/routes/index.tsp @@ -14,7 +14,7 @@ namespace OdptAPI; @route("/odpt/Calendar") interface CalendarOperations { - @doc("曜日・日付区分(odpt:Calendar)の内容を取得する") + @summary("曜日・日付区分(odpt:Calendar)の内容を取得する") @get getCalendars( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, @@ -25,7 +25,7 @@ interface CalendarOperations { @route("/Operator") interface OperatorOperations { - @doc("公共交通機関の事業者(odpt:Operator)の内容を取得する") + @summary("公共交通機関の事業者(odpt:Operator)の内容を取得する") @get getOperators( @query @doc("開発者サイトにて提供されるアクセストークン") `acl:consumerKey`: ConsumerKey, From 266cd6eb52ca3c02ba15e657b27bd65cc54e266e Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:45:51 +0900 Subject: [PATCH 16/21] chore(deps): add `@typespec/openapi` --- package.json | 1 + pnpm-lock.yaml | 14 ++++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 3fc0aa9..8724852 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@redocly/cli": "^1.25.8", "@typespec/compiler": "0.61.0", "@typespec/http": "0.61.0", + "@typespec/openapi": "0.61.0", "@typespec/openapi3": "0.61.0", "@typespec/prettier-plugin-typespec": "^0.61.0", "@typespec/rest": "0.61.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f67a2b..e22a9a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: '@typespec/http': specifier: 0.61.0 version: 0.61.0(@typespec/compiler@0.61.0) + '@typespec/openapi': + specifier: 0.61.0 + version: 0.61.0(@typespec/compiler@0.61.0)(@typespec/http@0.61.0(@typespec/compiler@0.61.0)) '@typespec/openapi3': specifier: 0.61.0 version: 0.61.0(@typespec/compiler@0.61.0)(@typespec/http@0.61.0(@typespec/compiler@0.61.0))(@typespec/openapi@0.61.0(@typespec/compiler@0.61.0)(@typespec/http@0.61.0(@typespec/compiler@0.61.0)))(@typespec/versioning@0.61.0(@typespec/compiler@0.61.0))(openapi-types@12.1.3) @@ -39,10 +42,6 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/code-frame@7.25.7': - resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.7': resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} @@ -1373,11 +1372,6 @@ snapshots: '@babel/highlight': 7.25.7 picocolors: 1.1.1 - '@babel/code-frame@7.25.7': - dependencies: - '@babel/highlight': 7.25.7 - picocolors: 1.1.1 - '@babel/helper-validator-identifier@7.25.7': {} '@babel/highlight@7.25.7': @@ -1430,7 +1424,7 @@ snapshots: '@readme/better-ajv-errors@1.6.0(ajv@8.17.1)': dependencies: - '@babel/code-frame': 7.25.7 + '@babel/code-frame': 7.24.7 '@babel/runtime': 7.25.7 '@humanwhocodes/momoa': 2.0.4 ajv: 8.17.1 From 1a79af47b3e0587cdeb468a2937d5f373611bbc9 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:46:50 +0900 Subject: [PATCH 17/21] add: api license info --- src/main.tsp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main.tsp b/src/main.tsp index df4e423..02c0efe 100644 --- a/src/main.tsp +++ b/src/main.tsp @@ -1,7 +1,9 @@ import "@typespec/http"; +import "@typespec/openapi"; import "./routes/index.tsp"; using TypeSpec.Http; +using TypeSpec.OpenAPI; @service({ title: "ODPT API", @@ -11,5 +13,11 @@ using TypeSpec.Http; "https://api-challenge2024.odpt.org/api/v4", "公共交通のオープンデータ API (チャレンジ2024専用)" ) +@info({ + license: { + name: "公共交通オープンデータ基本ライセンス, 公共交通オープンデータチャレンジ限定ライセンス", + url: "https://developer.odpt.org/terms" + } +}) @useAuth(ApiKeyAuth) namespace OdptAPI; From adad9e6a936f9d345eb3e820ca3eb580c8cb0a03 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:48:15 +0900 Subject: [PATCH 18/21] fix: adjust format --- src/main.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.tsp b/src/main.tsp index 02c0efe..bf264cb 100644 --- a/src/main.tsp +++ b/src/main.tsp @@ -16,8 +16,8 @@ using TypeSpec.OpenAPI; @info({ license: { name: "公共交通オープンデータ基本ライセンス, 公共交通オープンデータチャレンジ限定ライセンス", - url: "https://developer.odpt.org/terms" - } + url: "https://developer.odpt.org/terms", + }, }) @useAuth(ApiKeyAuth) namespace OdptAPI; From 8b8a63dab0a0674c66c04ddd44eb5676bbedd2f8 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 14:43:42 +0900 Subject: [PATCH 19/21] =?UTF-8?q?chore(redocly):=20output=E5=85=88?= =?UTF-8?q?=E3=82=92=E6=8C=87=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8724852..35ff95a 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "watch:redocly": "redocly preview-docs", "build": "pnpm build:tsp && pnpm build:redocly", "build:tsp": "tsp compile ./src/", - "build:redocly": "redocly build-docs", + "build:redocly": "redocly build-docs -o './dist/docs/index.html'", "check": "pnpm /^check:.*/", "check:format": "prettier -c ./src/", "check:lint": "redocly lint", From bd2af3652d25a52c434cb08acc7a1bae09ecdb7d Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 14:46:27 +0900 Subject: [PATCH 20/21] =?UTF-8?q?chore(pnpm):=20build=E5=89=8D=E3=81=ABdis?= =?UTF-8?q?t=E3=82=92=E5=89=8A=E9=99=A4=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 35ff95a..62dd6d8 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build": "pnpm build:tsp && pnpm build:redocly", "build:tsp": "tsp compile ./src/", "build:redocly": "redocly build-docs -o './dist/docs/index.html'", + "prebuild": "pnpx rimraf ./dist", "check": "pnpm /^check:.*/", "check:format": "prettier -c ./src/", "check:lint": "redocly lint", From 38bdb7c7ba30011cb3fc411680a981e033940d48 Mon Sep 17 00:00:00 2001 From: mst-mkt <131662659+mst-mkt@users.noreply.github.com> Date: Fri, 1 Nov 2024 14:48:47 +0900 Subject: [PATCH 21/21] 1.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 62dd6d8..3f076cd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "odpt-openapi", - "version": "1.0.0", + "version": "1.0.1", "type": "module", "scripts": { "dev": "pnpm /^watch:.*/",