API - flinux84/CloudMine GitHub Wiki

Sökväg och nuvarande version till api:t

[ApiVersion( "1.0" )]
[Route( "api/v{version:apiVersion}/FileItems" )]
tex: http://www.localhost:25952/api/v1.0/FileItems/

POSTMAN

Postman Collection
Importera denna i Postman så bör ni får en collection med olika requests som ni kan testa mot servern.
DELETE requesten kan behöva ändra sin sökväg ifall det id:t inte finns kvar i databasen.

Nuvarande metoder:

GET
GET Id
POST
PUT
DELETE

GET

Sökväg: http://www.localhost:25952/api/v1.0/FileItems/
Paging: Man kan nu lägga till ?pageNo=1&pageSize=5, http://www.localhost:25952/api/v1.0/FileItems?pageNo=1&pageSize=5
Default-värden om man inte skickar med något är pageNo=1 och pageSize = 20. I response headern så finns det nu ett nytt
fält som heter X-PageInfo som innehåller ett json-objekt som kan se ut så här om man är på sida 2:

{
   "pageNo":2,
   "pageSize":5,
   "totalFileItems":14,
   "totalPages":3,
   "prevPageLink":"http://localhost:25952/api/v1.0/FileItems?pageNo=1&pageSize=5",
   "nextPageLink":"http://localhost:25952/api/v1.0/FileItems?pageNo=3&pageSize=5"
}

Det objektet kan användas tex till att skapa a-länkar till nästa/föregående sida osv.
Returnerar: JSON-array med FileItem för den INLOGGADE användaren
Exempel på return:

[
  {
    "id": 12,
    "checksum": "725864a7-97f6-4dfc-bb20-7f420f3994c0",
    "fileName": null,
    "description": "test3",
    "uploaded": "0001-01-01T00:00:00",
    "private": false,
    "dataType": "jpg",
    "fileSize": 4,
    "userId": "d20de083-2590-4541-a594-fa6c4e2c3ff4",
    "dataChunks": null
  },
  {
    "id": 13,
    "checksum": "adf90aaa-a37c-47f5-8692-6bf3cee69321",
    "fileName": null,
    "description": "test3",
    "uploaded": "0001-01-01T00:00:00",
    "private": false,
    "dataType": "jpg",
    "fileSize": 4,
    "userId": "d20de083-2590-4541-a594-fa6c4e2c3ff4",
    "dataChunks": null
  }
]

GET Id

Sökväg: http://www.localhost:25952/api/v1.0/FileItems/5/
Returnerar: Ett JSON-object av typen FileItem
Exempel på return:

{
  "id": 5,
  "checksum": "136ce6e9-2c2a-400f-b682-4bb31b6c2921",
  "fileName": null,
  "description": null,
  "uploaded": "0001-01-01T00:00:00",
  "private": false,
  "dataType": null,
  "fileSize": 0,
  "userId": "A345204B-C91A-42E4-87A0-03EB585090B1",
  "dataChunks": null
}

POST

Sökväg: http://www.localhost:25952/api/v1.0/FileItems/
Returnerar: Ett JSON-objekt av typen FileItem som skapades
Ett tomt objekt kan skickas in för att skapa metadatan annars kan man använda alla fälten nedanför FÖRUTOM id-fältet. Exempel på return:

{
  "id": 5,
  "checksum": "93657799-3937-48db-ab50-65d22be62732",
  "fileName": null,
  "description": "test3",
  "uploaded": "0001-01-01T00:00:00",
  "private": false,
  "dataType": "jpg",
  "fileSize": 4,
  "userId": "a345204b-c91a-42e4-87a0-03eb585090b1",
  "dataChunks": null
}

PUT

Sökväg: http://www.localhost:25952/api/v1.0/FileItems/6/
Returnerar: 204 No Content för tillfället. Får man 204 så har ändringarna gått igenom ändå.
Exempel på objekt att skicka:

{
  "id": 6,
  "checksum": "1517f9ff-62c2-4b3b-98ec-9d3a0abd63cd",
  "fileName": "null",
  "description": null,
  "uploaded": "0001-01-01T00:00:00",
  "private": false,
  "dataType": null,
  "fileSize": 0,
  "userId": "a345204b-c91a-42e4-87a0-03eb585090b1",
  "dataChunks": null
}

DELETE

Sökväg: http://www.localhost:25952/api/v1.0/FileItems/6/
Returnerar: Ett JSON-Objekt av typen FileItem som raderades.
Exempel på return:

{
  "id": 6,
  "checksum": "1517f9ff-62c2-4b3b-98ec-9d3a0abd63cd",
  "fileName": "null",
  "description": null,
  "uploaded": "0001-01-01T00:00:00",
  "private": false,
  "dataType": null,
  "fileSize": 0,
  "userId": "a345204b-c91a-42e4-87a0-03eb585090b1",
  "dataChunks": null
}