Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Endpoint

To test the module, there is a special endpoint for loading test data into the module's storage. Ability to load MARC records supports the loading of both source data and already parsed records in JSON format.

This endpoint does not need any permissions. All records imported through this endpoint would be linked with the stubbed snapshot. Please see API documentation.

MethodDescription

POST

/populate-test-marc-records

Non-production endpoint into the mod-source-record-storage that allow the addition of MARC records for testing purposes.

mod-source-record-storage have a dedicated stub snapshot to store such records.

...

FieldDescription
rawRecords

Array of raw records that contains raw data of MARC record and UUID

...

RawRecord

FieldDescription
idUUID for particular record. Endpoint don't generate a UUID for records. Required field
contentString representation of single MARC record. The content can be either raw data or already parsed data in JSON format

...

MarcRecordCollection in this example contains two records inside the array. First source record is on a in raw format and the second one is represented as JSON.

...

Code Block
curl -w '\n' -X POST -D -   \
    -H "Content-type: application/json"   \
    -H "x-okapi-tenant: diku"   \
    -d @request.json \
    http://localhost:9130/populate-test-marc-records

If all records are successfully saved on the server, the response will come with the status code 204. 

The server will determine in what format the data came. If it is raw data, it will parse the records and save both the original and the parsed record in JSON format.

If the source record is already in JSON format, then the server will save this JSON as the raw record as well as the parsed one.

Java client generated by RMB

...

SourceStorageClient is generated by RMB and provide methods for all modules endpoints described into in the RAML file. So in this case we can use /populate-test-marc-records endpoint throughs this client.

...

Code Block
languagejava
// create client object with okapi url, tenant id and token
SourceStorageClient client = new SourceStorageClient("localhost", "diku", "token");


// create new records entity
TestMarcRecordsCollection testData = new TestMarcRecordsCollection()
  .withSourceRecordswithRawRecords(Arrays.asList(new SourceRecordRawRecord()
    .withId("88dfac11-1caf-4470-9ad1-d533f6360bdd")
    .withSourcewithContent("01240cas a2200397   4500001000700000005001700007008004100024010001700065022001400082035002600096035002200122035001100144035001900155040004400174050001500218082001100233222004200244245004300286260004700329265003800376300001500414310002200429321002500451362002300476570002900499650003300528650004500561655004200606700004500648853001800693863002300711902001600734905002100750948003700771950003400808\\u001E366832\\u001E20141106221425.0\\u001E750907c19509999enkqr p       0   a0eng d\\u001E  \\u001Fa   58020553 \\u001E  \\u001Fa0022-0469\\u001E  \\u001Fa(CStRLIN)NYCX1604275S\\u001E  \\u001Fa(NIC)notisABP6388\\u001E  \\u001Fa366832\\u001E  \\u001Fa(OCoLC)1604275\\u001E  \\u001FdCtY\\u001FdMBTI\\u001FdCtY\\u001FdMBTI\\u001FdNIC\\u001FdCStRLIN\\u001FdNIC\\u001E0 \\u001FaBR140\\u001Fb.J6\\u001E  \\u001Fa270.05\\u001E04\\u001FaThe Journal of ecclesiastical history\\u001E04\\u001FaThe Journal of ecclesiastical history.\\u001E  \\u001FaLondon,\\u001FbCambridge University Press [etc.]\\u001E  \\u001Fa32 East 57th St., New York, 10022\\u001E  \\u001Fav.\\u001Fb25 cm.\\u001E  \\u001FaQuarterly,\\u001Fb1970-\\u001E  \\u001FaSemiannual,\\u001Fb1950-69\\u001E0 \\u001Fav. 1-   Apr. 1950-\\u001E  \\u001FaEditor:   C. W. Dugmore.\\u001E 0\\u001FaChurch history\\u001FxPeriodicals.\\u001E 7\\u001FaChurch history\\u001F2fast\\u001F0(OCoLC)fst00860740\\u001E 7\\u001FaPeriodicals\\u001F2fast\\u001F0(OCoLC)fst01411641\\u001E1 \\u001FaDugmore, C. W.\\u001Fq(Clifford William),\\u001Feed.\\u001E03\\u001F81\\u001Fav.\\u001Fi(year)\\u001E40\\u001F81\\u001Fa1-49\\u001Fi1950-1998\\u001E  \\u001Fapfnd\\u001FbLintz\\u001E  \\u001Fa19890510120000.0\\u001E2 \\u001Fa20141106\\u001Fbm\\u001Fdbatch\\u001Felts\\u001Fxaddfast\\u001E  \\u001FlOLIN\\u001FaBR140\\u001Fb.J86\\u001Fh01/01/01 N\\u001E\\u001D"),
    new SourceRecordRawRecord()
      .withId("77dfac11-1caf-4470-9ad1-d533f6360bdd")
      .withSourcewithContent("{ \"leader\": \"00508cjm a22001813 4500\", \"fields\": [ { \"001\": \"10062588\" }, { \"005\": \"20171013073237.0\" }, { \"007\": \"sd fsngnnmmneu\" }, { \"008\": \"170825s2017 xx nn n zxx d\" }, { \"024\": { \"subfields\": [ { \"a\": \"00190295755553\" }, { \"2\": \"gtin-14\" } ], \"ind1\": \"7\", \"ind2\": \" \" } }, { \"024\": { \"subfields\": [ { \"a\": \"190295755553\" } ], \"ind1\": \"1\", \"ind2\": \" \" } }, { \"035\": { \"subfields\": [ { \"a\": \"(OCoLC)1002130878\" } ], \"ind1\": \" \", \"ind2\": \" \" } }, { \"035\": { \"subfields\": [ { \"a\": \"10062588\" } ], \"ind1\": \" \", \"ind2\": \" \" } }, { \"040\": { \"subfields\": [ { \"a\": \"BTCTA\" }, { \"b\": \"eng\" }, { \"c\": \"BTCTA\" } ], \"ind1\": \" \", \"ind2\": \" \" } }, { \"100\": { \"subfields\": [ { \"a\": \"Rossi, Daniele\" } ], \"ind1\": \"1\", \"ind2\": \" \" } }, { \"245\": { \"subfields\": [ { \"a\": \"Saint-Saens: Organ Symphony and Carnival of The Animals\" } ], \"ind1\": \"0\", \"ind2\": \"0\" } }, { \"260\": { \"subfields\": [ { \"b\": \"Wea Corp\" }, { \"c\": \"2017.\" } ], \"ind1\": \" \", \"ind2\": \" \" } }, { \"948\": { \"subfields\": [ { \"a\": \"20171013\" }, { \"b\": \"m\" }, { \"d\": \"batch\" }, { \"e\": \"lts\" }, { \"x\": \"deloclcprefix\" } ], \"ind1\": \"2\", \"ind2\": \" \" } } ] }")));


// send request to mod-source-record-storage
client.postSourceStoragePopulateTestMarcRecords(testData, handler->{
  if (handler.statusCode()==204){
    // processing response
    System.out.println("Records are successfully created.");
  }
});

...