Hi Jörg,
so far everything works fine. Only that I cannot add any another phone
label than ref_uri:dm4.contacts.mobile. When I try e.g.
ref_uri:dm4.contacts.home or ref_uri:dm4.contacts.work, then it does not
work. Any ideas?
Thx
Juergen
Am Mittwoch, den 18.02.2015, 19:35 +0100 schrieb Jörg Richter:
> Hi Juergen,
>
> to create a Person topic via REST:
>
> curl -X POST -H 'Authorization: Basic YWRtaW46' -H 'Cookie:
> dm4_workspace_id=2301' -H 'Content-Type: application/json' -d '{
> type_uri: "dm4.contacts.person",
> childs: {
> dm4.contacts.person_name: {
> dm4.contacts.first_name: "Lucy",
> dm4.contacts.last_name: "Suchman"
> },
> dm4.contacts.email_address: [
> "[email protected]",
> "[email protected]"
> ],
> dm4.contacts.phone_entry: [
> {
> type_uri: "dm4.contacts.phone_entry",
> childs: {
> dm4.contacts.phone_label:
> "ref_uri:dm4.contacts.mobile",
> dm4.contacts.phone_number: "0177 123456789"
> }
> }
> ]
> }
> }' http://localhost:8080/core/topic
>
> While not all the Person's child topics are set in this example (no Address
> for example) this demonstrates some crucial aspects. You should be able to
> transfer these to the other Person parts.
>
> You create a Person by POSTing a topic JSON representation to /core/topic.
>
> Note that the JSON is less verbose than the JSON you're GETing, e.g. you must
> specify no "id", "uri", "assoc" properties, and no "value" property for
> composite topics (as this is computed).
>
> You see, when the child is modeled as cardinality "many" you have to specify
> an JSON array, that is [ ... ]
>
> Another important thing is when the child is modeled via Aggregation
> Definition. In this case you have 2 options: a) create a NEW child, or b)
> refer to an EXISTING child. This is relevant e.g. with the Phone Label. Here
> you want refer to the existing phone label "mobile". You can do the referral
> by-ID or by-URI. That is you must know the ID or the URI of the topic you
> want refer to. You must prefix the value with "ref_id:" or "ref_uri:"
> respectively. For the Phone Label you use by-URI because its easier (the
> Phone Label URIs are fixed whereas the ID differ on each installation).
> IMPORTANT: if you don't use one of these prefixes the other case applies:
> you'll create a NEW child, that is you would CREATE another Phone Label
> (additionally to the 5 existing ones).
>
> So, potentially you have to deal with referral and these prefixes always when
> Aggregation Definitions are involved in the underlying model. That applies
> e.g. also to all the Address childs (Street, Postal Code, City, Country). All
> these are defined via aggregation. So, when you actually want REUSE e.g. the
> City topic "Berlin" for all the Berlin addresses, you must refer to that very
> Berlin topic (as said, either by ID or by URI).
>
> One more thing: when you specify the child topics in a JSON topic, you can
> choose between 2 formats: 1) the "simplified" format, or 2) the "canonic"
> format.
>
> Simplified format:
>
> childs: {
> type.uri1: "my value",
> type.uri2: "my value"
> }
>
> Canonic format:
>
> childs: {
> type.uri1: {
> id: 1234.
> uri: "my.uri",
> type_uri: "type.uri"
> value: "my value"
> childs: {
> ...
> }
> },
> type.uri2: {
> ...
> }
> }
>
> That is with the simplified format you specify just the child topic's values.
> That is sufficient e.g. when you want create a bunch of simple child topics
> with just the (payload) values set.
> In contrast when you want give the new childs topics not only the (payload)
> values but dedicated URIs as well (or when when the childs are not simple but
> composite) you have to choose the canonic format. Here you can specify
> complete topic representations possibly with all of the 5 canonic topic
> properties (id, uri, type_uri, value, childs).
>
> In a topic JSON representation you are free to mix both formats, just like in
> the Person example above.
>
> Tell me if you need any more help.
>
> Cheers,
> Jörg
>
>
> On Feb 18, 2015, at 17:31, Juergen Neumann wrote:
>
> > Hi Jörg et al.,
> >
> > how do I get|write all data from or to an dm4.contacts.person instance,
> > including multiple adresses and phone numbers. I did not yet manage to
> > get the complete composite through the REST call.
> >
> > Can you help me please.
> >
> > Thx
> >
> > Juergen
> >
> > --
> > devel mailing list
> > [email protected]
> > http://lists.deepamehta.de/mailman/listinfo/devel-lists.deepamehta.de
>
--
devel mailing list
[email protected]
http://lists.deepamehta.de/mailman/listinfo/devel-lists.deepamehta.de