HTTP-based API

S. "Leo" Tindle / Joshua Roth-Colson

Introduction to the HTTP API

All API methods are available from the dedicated API root URL of http://api.eresourcecenter.org/nvman/. No authentication is currently required to access any data from this root. Cookies are not required and not set by any methods of this API.

Important Notes About the HTTP API

  • The HTTP API is designed to be supported for a minimum of two years.
  • All current JSON dictionaries returned by the API are guaranteed to have the keys listed here; however, future development may add additional keys beyond what is currently available. It is advised that your applications not be designed in a way that they would not support additional keys.

API Statistics

Calling the root of the HTTP-based API at api.eresourcecenter.org/nvman provides basic information, as well as URIs for additional API features. The JSON returned from the root call provides the following information

  • version: The current version of the HTTP API, with version control data in square brackets

  • suppliers: Information on the suppliers currently in the database

    • count: The number of current suppliers

  • processes: Information on the processes currently in the database

  • oebuckets: Information on the OpenEnumeration (OE) buckets currently in the database

   1 // Reformatted for readability
   2 {
   3   "oebuckets": {
   4     "count": 9,
   5     "uri": "/nvman/oebuckets"
   6   },
   7   "processes": {
   8     "count": 339,
   9     "uri": "/nvman/processes"
  10   },
  11   "suppliers": {
  12     "count": 143
  13   },
  14   "version": "nvmanapi 0.1 [364:d36de82e46ae]"
  15 }

Processes

Processes are the heart of the Request for Discovery/Supplier Discovery (RfD/SD) system. A process is a distinct manufacturing procedure that can be performed by a supplier and, similarly, requested by an OEM. The RfD Taxonomy organizes processes into a tree hierarchy, where processes are sorted into categories, and similar processes are on similar branches of the tree.

Suppliers, when creating or editing their profiles, select the various processes that they have the capabilities to perform (or, in the case of synthetic suppliers, RfD staff members collect this information from various sources). OEMs, when setting up a discovery search, select the processes that are required to manufacture their product. The RfD/SD system then uses a set of proprietary formulas to assign scores to each supplier and sort them from highest score to lowest, based on the parameters of the discovery search.

Therefore, processes are a key part of the overall RfD/SD system, since they are the largest contributor to the discovery search algorithm. As a result, the HTTP API is designed to provide a comprehensive range of information on processes that can easily be integrated into your application.

Process List

Retrieve a list of available processes and basic information.

URI: http://api.eresourcecenter.org/nvman/processes

Example Response:

   1 // Reformatted for readability
   2 {
   3   "documentation": "https://eresourcecenter.org/kc/Univ/RfD/ProcessTaxonomy",
   4   "entries": {
   5     "is_a": 2494,
   6     "leaf": 1582,
   7     "total": 4076
   8   },
   9   "processes": {
  10     "abrasiveBlasting": {
  11       "children": [],
  12       "documentation": "https://eresourcecenter.org/kc/Univ/RfD/processes/AbrasiveBlasting",
  13       "leaf": true,
  14       "level": 6,
  15       "parent": "mechanicalDescaling",
  16       "suppliers": 9,
  17       "title": "Abrasive Blasting",
  18       "uri": "/nvman/processes/abrasiveBlasting"
  19     },
  20     "abrasiveMachining": {
  21       "children": [
  22         "grindingAM",
  23         "honing",
  24         "lapping",
  25         "superfinishing",
  26         "ultrasonicMachining",
  27         "jetMachining"
  28       ],
  29       "documentation": "https://eresourcecenter.org/kc/Univ/RfD/processes/AbrasiveMachining",
  30       "leaf": false,
  31       "level": 5,
  32       "parent": "reducingChips",
  33       "suppliers": 62,
  34       "title": "Abrasive Machining",
  35       "uri": "/nvman/processes/abrasiveMachining"
  36     },
  37 // (...)
  38   }
  39 }

Data Structure: Return value is a JSON dictionary with the following keys:

  • documentation: URI for current documentation on processes.

  • entries: Number of entries of each type of process across all suppliers

    • is_a: Number of entries that are categories (i.e., have child processes) across all suppliers

    • leaf: Number of entries that are not categories across all suppliers

    • total: The combined total of is_a and leaf entries

  • processes: Dictionary where each key is the process identifier and each value is a dictionary with the following:

    • title: Proper title of the process

    • parent: Parent of the process

    • children: List of child process identifiers

    • uri: API URI for more process information

    • documentation: URI for the current documentation for the process

    • suppliers: Number of suppliers that provide this process

    • leaf: Whether this process has any children (when true, the process has no children)

    • level: The process's depth in the hierarchy tree

Single Process

Provide detailed information on the specified process.

URI: http://api.eresourcecenter.org/nvman/processes/<processId>

Example Response:

   1 // Reformatted for readability
   2 {
   3   "children": [],
   4   "documentation": "https://eresourcecenter.org/kc/Univ/RfD/processes/Drilling",
   5   "id": "drilling",
   6   "parent": "multipointCutting",
   7   "similarity": {
   8     "abrasiveBlasting": 0.0,
   9     "abrasiveMachining": 0.593479839702019,
  10     "adhesiveBonding": 0.15895919654343693,
  11     "ageHardening": 0.0,
  12     "airArcCutting": 0.4361903603608303,
  13 // (...)
  14   },
  15   "suppliers": 83,
  16   "title": "Drilling"
  17 }

Data Structure:

  • title: Title of the process

  • id: Identifier of the process

  • suppliers: Number of suppliers that provide this process

  • similarity: Dictionary of processes and their similarity to the current process

  • documentation: URI for current documentation on the process

  • parent: Parent process identifier

  • children: List of children's process identifiers

OpenEnumeration

OpenEnumeration simplifies adding selection identifiers for several Supplier Discovery tags, such as Formats and Metals. When a supplier fills out a profile, they can simply browse through previous entries that other suppliers have provided and select from that list. If none of those entries are applicable, the supplier may enter a new entry. The following API methods provide information on these OpenEnumeration entries.

OpenEnumeration List

Provide a list of OpenEnumeration (OE) buckets.

URI: http://api.eresourcecenter.org/nvman/oebuckets

Example Response:

   1 // Reformatted for readability
   2 {
   3   "buckets": {
   4     "association": {
   5       "entries": 47,
   6       "title": "association",
   7       "uri": "/nvman/oebuckets/association"
   8     },
   9     "certification": {
  10       "entries": 65,
  11       "title": "certification",
  12       "uri": "/nvman/oebuckets/certification"
  13     },
  14     "format": {
  15       "entries": 233,
  16       "title": "format",
  17       "uri": "/nvman/oebuckets/format"
  18     },
  19     "metal": {
  20       "entries": 550,
  21       "title": "metal",
  22       "uri": "/nvman/oebuckets/metal"
  23     },
  24     "model": {
  25       "entries": 238,
  26       "title": "model",
  27       "uri": "/nvman/oebuckets/model"
  28     },
  29     "otherMaterial": {
  30       "entries": 50,
  31       "title": "otherMaterial",
  32       "uri": "/nvman/oebuckets/otherMaterial"
  33     },
  34     "plastic": {
  35       "entries": 106,
  36       "title": "plastic",
  37       "uri": "/nvman/oebuckets/plastic"
  38     },
  39     "segment": {
  40       "entries": 359,
  41       "title": "segment",
  42       "uri": "/nvman/oebuckets/segment"
  43     },
  44     "standard": {
  45       "entries": 72,
  46       "title": "standard",
  47       "uri": "/nvman/oebuckets/standard"
  48     }
  49   },
  50   "entries": 1720
  51 }

Data Structure:

  • entries: Number of OE entries across all buckets

  • buckets: Dictionary of OE buckets available where the key is the bucket identifier and value contains a dictionary of basic statistics

    • title: Full title of the OE bucket

    • entries: Number of entries in the OE bucket

    • uri: URI of the API call to get more information on the OE bucket

/!\ Note: Although the keys in the buckets dictionary and their associated titles are currently the same, this may not always be so. When needing to display the proper English title of the bucket, use the title variable. When needing an identifier for requests, always use the key of the dictionary.

OpenEnumeration Bucket

Provide information on an OE bucket.

URI: http://api.eresourcecenter.org/nvman/oebuckets/<bucketId>

Example Response:

   1 // Reformatted for readability
   2 {
   3   "id": "standard",
   4   "terms": {
   5     "45208A": {
   6       "suppliers": 1,
   7       "title": "45208A"
   8     },
   9     "45662A": {
  10       "suppliers": 1,
  11       "title": "45662A"
  12     },
  13     "AS 9100": {
  14       "suppliers": 4,
  15       "title": "AS 9100"
  16     },
  17     "AS9100": {
  18       "suppliers": 1,
  19       "title": "AS9100"
  20     },
  21     "AS9100:2004": {
  22       "suppliers": 1,
  23       "title": "AS9100:2004"
  24     },
  25 // (...)
  26   },
  27   "title": "standard"
  28 }

Data Structure:

  • id: OE bucket identifier

  • title: Full title of the OE bucket

  • terms: Dictionary of OE bucket entries where the key is the entry identifier and the value contains a dictionary of basic statistics

    • title: Full title of the entry

    • suppliers: Number of suppliers that contain this entry

/!\ Note: Although the keys in the terms dictionary and their associated titles are currently the same, this may not always be so. When needing to display the proper English title of the entry, use the title variable. When needing an identifier for requests, always use the key of the dictionary.


Univ/NvManAnalytics/HttpApi (last edited 2013-02-22 23:08:42 by jroth)