Best Practices ============== General Concepts ---------------- .. toctree:: :maxdepth: 2 :hidden: Alternative_Standards Authentication CORS Required_and_Additional_Fields RESTfulness Versioning The :doc:`BrAPI Community ` has developed a set of Best Practices when working with :doc:`BrAPI ` implementations. - :doc:`Alternative Standards ` - Notes on conversions and mappings to other existing standards including MIAPPE, ICASA, MCPD, GeoJSON, and GA4GH Variants Schema - :doc:`Authentication ` - Notes on Authentication and Authorization, focusing on OAuth2 - :doc:`Cross-Origin Resource Sharing (CORS) ` - Notes on common :doc:`CORS ` errors and how to deal with them - :doc:`Required and Additional Fields ` - Notes on Fields and Parameters when they are Required, Added, and Deprecated - :doc:`RESTfulness ` - General REST best practices, including notes on HTTP verbs, HTTP status codes, and URL construction. - :doc:`Versioning ` - Notes on BrAPI Versioning Scheme Implementation Notes -------------------- .. toctree:: :maxdepth: 2 :hidden: Dates_and_Times Object_Identifiers Error_Handling Location_Coordinates Observation_Levels Pagination Pedigree_Tree Search_Services These are notes on how to correctly implement certain specific concepts in BrAPI. - :doc:`Dates and Times ` - Notes on encoding Dates and Times - :doc:`Object Identifiers ` - Notes on DbIds, Names, PUIs, DOIs, and External References - :doc:`Error Handling ` - Notes on handling Errors - :doc:`Location Coordinates ` - Notes on use GPS Coordinates and GeoJSON - :doc:`Observation Levels ` - Notes on how to represent different types of Observation Units (ie, field, plot, plant, etc) - :doc:`Pagination ` - Notes on Pagination - :doc:`Pedigree Tree Implementation ` - Guidelines for implementing a Pedigree Tree in BrAPI - :doc:`Search Services ` - Notes on Search implementations