api completion

This commit is contained in:
2026-02-01 05:29:16 +01:00
parent 4fe95ca538
commit 1a10e3c784
2 changed files with 18 additions and 2 deletions
+3 -2
View File
@@ -1,6 +1,5 @@
require "grape" require "grape"
require "grape-swagger" require "grape-swagger"
require "ostruct"
class Api::Base < Grape::API class Api::Base < Grape::API
format :json format :json
@@ -18,7 +17,9 @@ class Api::Base < Grape::API
resource :entries do resource :entries do
desc "Return public entries in all languages", desc "Return public entries in all languages",
attributes: OpenStruct.new(success: nil, produces: nil) is_array: true,
success: Api::Entities::Entry,
produces: ["application/json"]
params do params do
optional :since, optional :since,
type: String, type: String,
+15
View File
@@ -0,0 +1,15 @@
module Api
module Entities
class Entry < Grape::Entity
expose :id, documentation: { type: "integer", format: "int64", desc: "Entry ID." }
expose :category, documentation: { type: "string", desc: "Category label." }
expose :fi, documentation: { type: "string", desc: "Finnish term/definition.", allow_nil: true }
expose :en, documentation: { type: "string", desc: "English term/definition.", allow_nil: true }
expose :sv, documentation: { type: "string", desc: "Swedish term/definition.", allow_nil: true }
expose :no, documentation: { type: "string", desc: "Norwegian term/definition.", allow_nil: true }
expose :ru, documentation: { type: "string", desc: "Russian term/definition.", allow_nil: true }
expose :de, documentation: { type: "string", desc: "German term/definition.", allow_nil: true }
expose :updated_at, documentation: { type: "string", format: "date-time", desc: "Last update timestamp (ISO8601)." }
end
end
end