mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-29 19:52:24 -05:00 
			
		
		
		
	Add Accept header negotiation to relevant API endpoints (#337)
		
	* start centralizing negotiation logic for API * swagger document nodeinfo endpoint * go fmt * document negotiate function * use content negotiation * tidy up negotiation logic * negotiate content throughout client api * swagger * remove attachment on Content * add accept header to test requests
This commit is contained in:
		
					parent
					
						
							
								0884f89431
							
						
					
				
			
			
				commit
				
					
						e2daf0f012
					
				
			
		
					 78 changed files with 752 additions and 72 deletions
				
			
		|  | @ -20,19 +20,11 @@ package user | |||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"github.com/gin-gonic/gin" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/util" | ||||
| ) | ||||
| 
 | ||||
| // ActivityPubAcceptHeaders represents the Accept headers mentioned here: | ||||
| // https://www.w3.org/TR/activitypub/#retrieving-objects | ||||
| var ActivityPubAcceptHeaders = []string{ | ||||
| 	`application/activity+json`, | ||||
| 	`application/ld+json; profile="https://www.w3.org/ns/activitystreams"`, | ||||
| } | ||||
| 
 | ||||
| // transferContext transfers the signature verifier and signature from the gin context to the request context | ||||
| func transferContext(c *gin.Context) context.Context { | ||||
| 	ctx := c.Request.Context() | ||||
|  | @ -50,14 +42,6 @@ func transferContext(c *gin.Context) context.Context { | |||
| 	return ctx | ||||
| } | ||||
| 
 | ||||
| func negotiateFormat(c *gin.Context) (string, error) { | ||||
| 	format := c.NegotiateFormat(ActivityPubAcceptHeaders...) | ||||
| 	if format == "" { | ||||
| 		return "", fmt.Errorf("no format can be offered for Accept headers %s", c.Request.Header.Get("Accept")) | ||||
| 	} | ||||
| 	return format, nil | ||||
| } | ||||
| 
 | ||||
| // SwaggerCollection represents an activitypub collection. | ||||
| // swagger:model swaggerCollection | ||||
| type SwaggerCollection struct { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue