Skip to content

API endpoints for Maven projects

Mihhail Sokolov edited this page Dec 29, 2020 · 46 revisions

ToC

Getting started

Take a look at the documentation to see how to launch the REST server.

Useful links

Endpoints

Packages and package versions

Done Resource Method Req. body Query params Response codes Response body

Missing:
tests
/mvn/packages GET limit: integer, offset: integer
  • 200: Packages returned
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
{ "id": bigint, "package_name": text, "forge": text, "project_name": text, "repository": text, "created_at": timestamp, "version": text }

  • Search packages

Missing:
tests
/mvn/packages/search GET packageName: text, limit: integer, offset: integer
  • 200: Packages returned
  • 400: Invalid limit value
  • 400: Invalid offset value
[ { "id": bigint, "package_name": text, "forge": text, "project_name": text, "repository": text, "created_at": timestamp } ]

  • All packages

Missing:
tests
/mvn/packages/{pkg} GET
  • 200: Package returned
[ { "id": bigint, "package_name": text, "forge": text, "project_name": text, "repository": text, "created_at": timestamp } ]


Missing:
tests
/mvn/packages/{pkg}/versions GET limit: integer, offset: integer
  • 200: Package versions returned
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
[ { "id": bigint, "package_id": bigint, "version": text, "cg_generator": text, "created_at": timestamp, "metadata": jsonb } ]

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver} GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
{ "id": bigint, "package_id": bigint, "version": text, "cg_generator": text, "created_at": timestamp, "metadata": jsonb }

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/metadata GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
{ "package_name": text, "version": text, "metadata": json }

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/callgraph GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
[ { "source_id": bigint, "target_id": bigint } ]

Could be retrieved directly from graph DB.


Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/rcg GET
  • 200: OK
"link to JSON RCG for downloading"

Missing:
tests
/mvn/package_version/{pkg_version_id}/rcg GET
  • 200: OK
"link to JSON RCG for downloading"

Dependencies

Done Resource Method Req. body Query params Response codes Response body

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/deps GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
[ { "package_version_id": bigint, "dependency_id": bigint, "version_range": [ text ], "metadata": jsonb } ]

Modules

Done Resource Method Req. body Query params Response codes Response body

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/modules GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
[ { "id": bigint, "package_version_id": binint, "namespace": text, "created_at": timestamp, "metadata": jsonb } ]
🐞
Unsupported encoded URI
/mvn/packages/{pkg}/{pkg_ver}/modules/{namespace}/metadata GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
  • 404: Module namespace not found
[ { "package_name": text, "version": text, "namespace": text, "metadata": jsonb } ]

Only one element, it won't be an array soon.

🐞
Unsupported encoded URI
/mvn/packages/{pkg}/{pkg_ver}/modules/{namespace}/files GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
  • 404: Module namespace not found
[ { "id": bigint, "package_version_id": bigint, "path": text, "checksum": bytea, "created_at": timestamp, "metadata": jsonb } ]
🐞
Unsupported encoded URI
/mvn/packages/{pkg}/{pkg_ver}/modules/{namespace}/callables GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
  • 404: Module namespace not found
callables:*

Retrievably directly from graph DB, one-line query.

Binary Modules

Done Resource Method Req. body Query params Response codes Response body
✅:warning:
Not tested due to missing data in KB.
Also Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/binary-modules GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
binary_modules:*
✅:warning:
Not tested due to missing data in KB.
Also Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/binary-modules/{binary}/metadata GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
  • 404: Binary name not found
binary_modules:metadata
✅:warning:
Not tested due to missing data in KB.
Also Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/binary-modules/{binary}/files GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
  • 404: Binary name not found
files:*

Callables

Callable ID = module ID (package version) + FASTEN URI + other

Done Resource Method Req. body Query params Response codes Response body

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/callables GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
callables:*

Retrievably directly from graph DB, one-line query.

🐞
Unsupported encoded URI
/mvn/packages/{pkg}/{pkg_ver}/{fasten_uri}/metadata GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
  • 404: FASTEN URI not found
callables:metadata

Edges

Done Resource Method Req. body Query params Response codes Response body

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/edges GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
edges:*

Files

Done Resource Method Req. body Query params Response codes Response body

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/files GET limit: integer, offset: integer
  • 200: OK
  • 400: Invalid limit value
  • 400: Invalid offset value
  • 404: Package not found
  • 404: Package version not found
files:*

Resolution

Done Resource Method Req. body Query params Response codes Response body

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/resolve/dependencies GET transitive: boolean, timestamp: long
  • 200: OK
  • 404: Package not found
  • 404: Package version not found
revisions:*

Missing:
tests
/mvn/packages/{pkg}/{pkg_ver}/resolve/dependents GET transitive: boolean, timestamp: long
  • 200: OK
  • 404: Package not found
  • 404: Package version not found
revisions:*