# nazihfino/ogcapi-records architecture

> Architecture diagram of the GitHub repository nazihfino/ogcapi-records, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nazihfino/ogcapi-records
- Repository: https://github.com/nazihfino/ogcapi-records

## Overview

This repository defines the OGC API - Records standard, not a running catalogue service. Its principal workflow is a client discovering and retrieving metadata records, with optional query parameters and paged results; content negotiation determines the response format. The graph models documented API behavior and its specification artifacts, not runtime calls. Relationships are based on the README and the named clauses; no implementation source was available to verify service internals.

Main entry points: [`core/standard/clause_8_collections.adoc`](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_8_collections.adoc) (Record search), [`core/openapi/openapi.yaml`](https://github.com/nazihfino/ogcapi-records/blob/master/core/openapi/openapi.yaml) (OpenAPI document), [`core/openapi/schemas/record.yaml`](https://github.com/nazihfino/ogcapi-records/blob/master/core/openapi/schemas/record.yaml) (Record content), [`core/standard/clause_12_media_types.adoc`](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_12_media_types.adoc) (Content negotiation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API behavior"]
  node_overview["API overview"]
  node_core["Core API<br/>[clause_7_core.adoc]"]
  node_collections["Collections"]
  node_search["Record search"]
  node_retrieve["Record retrieval"]
  node_filters["OpenSearch filters"]
  node_paging["Paged results"]
end

subgraph group_records["Record model"]
  node_queryables["Queryables<br/>[clause_7_core.adoc]"]
  node_record["Record content<br/>[record.yaml]"]
  node_core_fields["Core queryables"]
end

subgraph group_contract["API contract"]
  node_negotiation["Content negotiation"]
  node_encodings["Encodings"]
  node_oas_clause["OpenAPI definition<br/>[clause_11_oas.adoc]"]
  node_oas_file["OpenAPI document<br/>[openapi.yaml]"]
end

node_client(("API client"))

node_client -->|"discovers"| node_collections
node_client -->|"lists records"| node_search
node_client -->|"requests record"| node_retrieve
node_search -->|"accepts filters"| node_filters
node_search -->|"returns pages"| node_paging
node_client -->|"requests queryables"| node_queryables
node_search -->|"returns records"| node_record
node_retrieve -->|"returns record"| node_record
node_record -->|"includes"| node_core_fields
node_client -->|"negotiates format"| node_negotiation
node_negotiation -->|"selects encoding"| node_encodings
node_oas_clause -->|"defines"| node_oas_file
node_oas_file -->|"describes operation"| node_search
node_oas_file -->|"describes operation"| node_retrieve

click node_overview "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_6_overview.adoc"
click node_core "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_7_core.adoc"
click node_collections "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_8_collections.adoc"
click node_search "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_8_collections.adoc"
click node_retrieve "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_8_collections.adoc"
click node_queryables "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_7_core.adoc"
click node_filters "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_9_opensearch.adoc"
click node_paging "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/requirements/core/REQ_rc-paged-response.adoc"
click node_record "https://github.com/nazihfino/ogcapi-records/blob/master/core/openapi/schemas/record.yaml"
click node_core_fields "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/requirements/core/REQ_mandatory-queryables.adoc"
click node_negotiation "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_12_media_types.adoc"
click node_encodings "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_10_encodings.adoc"
click node_oas_clause "https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_11_oas.adoc"
click node_oas_file "https://github.com/nazihfino/ogcapi-records/blob/master/core/openapi/openapi.yaml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_overview,node_core,node_collections,node_search,node_retrieve,node_filters,node_paging,node_client toneBlue
class node_queryables,node_record,node_core_fields toneAmber
class node_negotiation,node_encodings,node_oas_clause,node_oas_file toneMint
```

## Components

### API behavior

- [API overview](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_6_overview.adoc): `core/standard/clause_6_overview.adoc`
- [Core API](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_7_core.adoc): `core/standard/clause_7_core.adoc`
- [Collections](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_8_collections.adoc): `core/standard/clause_8_collections.adoc`
- [Record search](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_8_collections.adoc): `core/standard/clause_8_collections.adoc`
- [Record retrieval](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_8_collections.adoc): `core/standard/clause_8_collections.adoc`
- [OpenSearch filters](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_9_opensearch.adoc): `core/standard/clause_9_opensearch.adoc`
- [Paged results](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/requirements/core/REQ_rc-paged-response.adoc): `core/standard/requirements/core/REQ_rc-paged-response.adoc`

### Record model

- [Queryables](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_7_core.adoc): `core/standard/clause_7_core.adoc`
- [Record content](https://github.com/nazihfino/ogcapi-records/blob/master/core/openapi/schemas/record.yaml): `core/openapi/schemas/record.yaml`
- [Core queryables](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/requirements/core/REQ_mandatory-queryables.adoc): `core/standard/requirements/core/REQ_mandatory-queryables.adoc`

### API contract

- [Content negotiation](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_12_media_types.adoc): `core/standard/clause_12_media_types.adoc`
- [Encodings](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_10_encodings.adoc): `core/standard/clause_10_encodings.adoc`
- [OpenAPI definition](https://github.com/nazihfino/ogcapi-records/blob/master/core/standard/clause_11_oas.adoc): `core/standard/clause_11_oas.adoc`
- [OpenAPI document](https://github.com/nazihfino/ogcapi-records/blob/master/core/openapi/openapi.yaml): `core/openapi/openapi.yaml`

### Other components

- **API client**

## Connections

- API client → Collections: discovers
- API client → Record search: lists records
- API client → Record retrieval: requests record
- Record search → OpenSearch filters: accepts filters
- Record search → Paged results: returns pages
- API client → Queryables: requests queryables
- Record search → Record content: returns records
- Record retrieval → Record content: returns record
- Record content → Core queryables: includes
- API client → Content negotiation: negotiates format
- Content negotiation → Encodings: selects encoding
- OpenAPI definition → OpenAPI document: defines
- OpenAPI document → Record search: describes operation
- OpenAPI document → Record retrieval: describes operation
