Files
directus/docs/reference/api/rest/relations.md
2021-02-08 17:31:07 -05:00

5.2 KiB

pageClass
pageClass
page-reference

Relations

What data is linked to what other data. Allows you to assign authors to articles, products to sales, and whatever other structures you can think of. Learn more about Relationships.

toc


The Relation Object

id integer
Primary key of the relation.

many_collection string
Collection on the "many" side of the relation.

many_field string
Field on the "many" side of the relation.

one_collection string
Collection on the "one" side of the relation.

one_field string
Field on the "one" side of the relation.

one_collection_field string
In Many-to-Any type fields, this holds the field in the many collection that holds the name of the "one" collection.

one_allowed_collections string
In Many-to-Any type fields, this holds a csv of collection names the user is allowed to use through the m2a relation.

junction_field string
For Many-to-Many type fields, this holds the name of the field that "links" a many-to-one to a one-to-many, creating a many-to-many.

{
	"id": 13,
	"many_collection": "articles",
	"many_field": "featured_image",
	"one_collection": "directus_files",
	"one_field": null,
	"one_collection_field": null,
	"one_allowed_collections": null,
	"junction_field": null
}

List relations

List all relations that exist in Directus.

::: tip Permissions

The data returned in this endpoint will be filtered based on the user's permissions. For example, relations that apply to a collection that the current user doesn't have access to are stripped out.

:::

Query Parameters

Supports all global query parameters.

Returns

An array of up to limit relation objects. If no items are available, data will be an empty array.

GET /relations
// Response

{
	"data": [
		{
			"id": 13,
			"many_collection": "articles",
			"many_field": "featured_image",
			"one_collection": "directus_files",
			"one_field": null,
			"one_collection_field": null,
			"one_allowed_collections": null,
			"junction_field": null
		},
		{...},
		{...}
	]
}

Retrieve a relation

List an existing relation by primary key.

Query Parameters

Supports all global query parameters.

Returns

Returns the requested relation object.

GET /relations/:id
// Response

{
	"data": {
		"id": 13,
		"many_collection": "articles",
		"many_field": "featured_image",
		"one_collection": "directus_files",
		"one_field": null,
		"one_collection_field": null,
		"one_allowed_collections": null,
		"junction_field": null
	}
}

Create relation

Create one or more new relation(s).

Query Parameters

Supports all global query parameters.

Request Body

A partial relation object or an array of partial relation objects.

Returns

Returns the relation object for the created relation.

POST /relations
// Request

{
	"many_collection": "articles",
	"many_field": "featured_image",
	"one_collection": "directus_files"
}
// Response

{
	"data": {
		"id": 13,
		"many_collection": "articles",
		"many_field": "featured_image",
		"one_collection": "directus_files",
		"one_field": null,
		"one_collection_field": null,
		"one_allowed_collections": null,
		"junction_field": null
	}
}

Update relation

Update an existing relation.

Query Parameters

Supports all global query parameters.

Request Body

A partial relation object.

Returns

Returns the relation object for the created relation.

PATCH /relations/:id
// Request

{
	"one_field": "articles"
}
// Response

{
	"data": {
		"id": 13,
		"many_collection": "articles",
		"many_field": "featured_image",
		"one_collection": "directus_files",
		"one_field": "articles",
		"one_collection_field": null,
		"one_allowed_collections": null,
		"junction_field": null
	}
}

Delete relation

Delete an existing relation.

Returns

Empty body.

DELETE /relations/:id
// Empty Response

Delete Multiple relations

Delete multiple existing relations.

Request Body

An array of relation primary keys

Returns

Empty body.

DELETE /relations
// Request
[15, 251, 810]
// Empty Response