mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-07 20:29:32 -06:00
[bugfix] Fix Swagger spec and add test script (#2698)
* Add Swagger spec test script * Fix Swagger spec errors not related to statuses with polls * Add API tests that post a status with a poll * Fix creating a status with a poll from form params * Fix Swagger spec errors related to statuses with polls (this is the last error) * Fix Swagger spec warnings not related to unused definitions * Suppress a duplicate list update params definition that was somehow causing wrong param names * Add Swagger test to CI - updates Drone config - vendorizes go-swagger - fixes a file extension issue that caused the test script to generate JSON instead of YAML with the vendorized version * Put `Sample: ` on its own line everywhere * Remove unused id param from emojiCategoriesGet * Add 5 more pairs of profile fields to account update API Swagger * Remove Swagger prefix from dummy fields It makes the generated code look weird * Manually annotate params for statusCreate operation * Fix all remaining Swagger spec warnings - Change some models into operation parameters - Ignore models that already correspond to manually documented operation parameters but can't be trivially changed (those with file fields) * Documented that creating a status with scheduled_at isn't implemented yet * sign drone.yml * Fix filter API Swagger errors * fixup! Fix filter API Swagger errors --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com>
This commit is contained in:
parent
68c8fe67cc
commit
fc3741365c
672 changed files with 135624 additions and 713 deletions
78
vendor/github.com/go-swagger/go-swagger/generator/doc.go
generated
vendored
Normal file
78
vendor/github.com/go-swagger/go-swagger/generator/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
/*
|
||||
Package generator provides the code generation library for go-swagger.
|
||||
|
||||
# Generating data types
|
||||
|
||||
The general idea is that you should rarely see interface{} in the generated code.
|
||||
You get a complete representation of a swagger document in somewhat idiomatic go.
|
||||
|
||||
To do so, there is a set of mapping patterns that are applied,
|
||||
to map a Swagger specification to go types:
|
||||
|
||||
definition of primitive => type alias/name
|
||||
definition of array => type alias/name
|
||||
definition of map => type alias/name
|
||||
|
||||
definition of object
|
||||
with properties => struct
|
||||
definition of $ref => type alias/name
|
||||
|
||||
object with only
|
||||
additional properties => map[string]T
|
||||
|
||||
object with additional
|
||||
properties and properties => custom serializer
|
||||
|
||||
schema with schema array
|
||||
in items => tuple (struct with properties, custom serializer)
|
||||
|
||||
schema with all of => struct
|
||||
|
||||
* allOf schema with $ref => embedded value
|
||||
* allOf schema with properties => properties are included in struct
|
||||
* adding an allOf schema with just "x-isnullable": true or
|
||||
"x-nullable": true turns the schema into a pointer when
|
||||
there are only other extension properties provided
|
||||
|
||||
NOTE: anyOf and oneOf JSON-schema constructs are not supported by Swagger 2.0
|
||||
|
||||
A property on a definition is a pointer when any one of the following conditions is met:
|
||||
|
||||
it is an object schema (struct)
|
||||
it has x-nullable or x-isnullable as vendor extension
|
||||
it is a primitive where the zero value is valid but would fail validation
|
||||
otherwise strings minLength > 0 or required results in non-pointer
|
||||
numbers min > 0, max < 0 and min < max
|
||||
|
||||
JSONSchema and by extension Swagger allow for items that have a fixed size array,
|
||||
with the schema describing the items at each index. This can be combined with additional items
|
||||
to form some kind of tuple with varargs.
|
||||
|
||||
To map this to go it creates a struct that has fixed names and a custom json serializer.
|
||||
|
||||
NOTE: the additionalItems keyword is not supported by Swagger 2.0. However, the generator and validator parts
|
||||
in go-swagger do.
|
||||
|
||||
# Documenting the generated code
|
||||
|
||||
The code that is generated also gets the doc comments that are used by the scanner
|
||||
to generate a spec from go code. So that after generation you should be able to reverse
|
||||
generate a spec from the code that was generated by your spec.
|
||||
|
||||
It should be equivalent to the original spec but might miss some default values and examples.
|
||||
*/
|
||||
package generator
|
||||
Loading…
Add table
Add a link
Reference in a new issue