Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33103339
api_spec.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
api_spec.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.ApiSpec
do
alias
OpenApiSpex.OpenApi
alias
OpenApiSpex.Operation
alias
Pleroma.Web.Endpoint
alias
Pleroma.Web.Router
@behaviour
OpenApi
@impl
OpenApi
def
spec
do
%
OpenApi
{
servers
:
[
# Populate the Server info from a phoenix endpoint
OpenApiSpex.Server
.
from_endpoint
(
Endpoint
)
],
info
:
%
OpenApiSpex.Info
{
title
:
"Pleroma"
,
description
:
Application
.
spec
(
:pleroma
,
:description
)
|>
to_string
(),
version
:
Application
.
spec
(
:pleroma
,
:vsn
)
|>
to_string
()
},
# populate the paths from a phoenix router
paths
:
OpenApiSpex.Paths
.
from_router
(
Router
),
components
:
%
OpenApiSpex.Components
{
parameters
:
%{
"accountIdOrNickname"
=>
Operation
.
parameter
(
:id
,
:path
,
:string
,
"Account ID or nickname"
,
example
:
"123"
,
required
:
true
)
},
securitySchemes
:
%{
"oAuth"
=>
%
OpenApiSpex.SecurityScheme
{
type
:
"oauth2"
,
flows
:
%
OpenApiSpex.OAuthFlows
{
password
:
%
OpenApiSpex.OAuthFlow
{
authorizationUrl
:
"/oauth/authorize"
,
tokenUrl
:
"/oauth/token"
,
scopes
:
%{
"read"
=>
"read"
,
"write"
=>
"write"
,
"follow"
=>
"follow"
,
"push"
=>
"push"
}
}
}
}
}
}
}
# discover request/response schemas from path specs
|>
OpenApiSpex
.
resolve_schema_modules
()
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Tue, Jan 20, 1:36 PM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
728536
Default Alt Text
api_spec.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment