> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Request-parameters toevoegen

export const Compatibility = ({versions = [], label = "Available in"}) => {
  if (!Array.isArray(versions) || versions.length === 0) {
    return null;
  }
  const defaultPillStyle = {
    borderColor: "#d4d4d8",
    background: "#f4f4f5",
    color: "#3f3f46"
  };
  const pillStyles = {
    "AppSignal for Elixir": {
      background: "#f3e8ff",
      borderColor: "#d8b4fe",
      color: "#6b21a8"
    },
    "AppSignal for Front-end": {
      background: "#fef9c3",
      borderColor: "#fde047",
      color: "#854d0e"
    },
    "AppSignal for Go": {
      background: "#ccfbf1",
      borderColor: "#5eead4",
      color: "#115e59"
    },
    "AppSignal for JavaScript": {
      background: "#fef9c3",
      borderColor: "#fde047",
      color: "#854d0e"
    },
    "AppSignal for Node.js": {
      background: "#dcfce7",
      borderColor: "#86efac",
      color: "#166534"
    },
    "AppSignal for Python": {
      background: "#dbeafe",
      borderColor: "#93c5fd",
      color: "#1e40af"
    },
    "AppSignal for Ruby": {
      background: "#fee2e2",
      borderColor: "#fca5a5",
      color: "#991b1b"
    },
    "AppSignal for Rust": {
      background: "#ffedd5",
      borderColor: "#fdba74",
      color: "#9a3412"
    }
  };
  const getPillStyle = name => ({
    ...defaultPillStyle,
    ...pillStyles[name] || ({})
  });
  return <div className="not-prose my-4 rounded-lg border border-zinc-200 bg-zinc-50 px-4 py-3 text-sm dark:border-white/10 dark:bg-white/5">
      <div className="flex flex-wrap items-center gap-x-2 gap-y-1">
        <span className="font-semibold text-zinc-700 dark:text-zinc-200">
          {label}:
        </span>
        {versions.map((v, i) => <span key={`${v.name}-${v.version}-${i}`} className="inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium" style={getPillStyle(v.name)}>
            <span>{v.name}</span>
            <span className="opacity-70">
              {v.version}
              {v.exact ? "" : "+"}
            </span>
          </span>)}
      </div>
    </div>;
};

<Compatibility
  versions={[
{ name: "AppSignal for Ruby", version: "4.0.0" },
{ name: "AppSignal for Elixir", version: "1.0.0" },
{ name: "AppSignal for Node.js", version: "3.0.0" },
{ name: "AppSignal for Python", version: "0.3.0" },
{ name: "AppSignal Collector", version: "0.6.0" },
{ name: "AppSignal for PHP", version: "0.5.0" },
]}
/>

Standaard houden de AppSignal-integraties request-parameters bij voor web-requests in ondersteunde libraries. Dit omvat query-parameters en de POST request-body\*. Voor background jobs slaan we de job-argumenten op in de parameters.

<Tip>
  \*: Het AppSignal voor PHP-pakket en de talen die worden ondersteund via onze [OpenTelemetry beta](/opentelemetry) slaan de query-parameters van requests en de payload-gegevens van requests apart op.
  Zie de sectie [request payload data](#request-payload-data) voor meer informatie over hoe u request payload-gegevens apart instelt.
</Tip>

<Warning>
  🔐 Stuur geen <strong>Persoonlijk Identificeerbare Informatie (PII)</strong> naar AppSignal. Filter PII (bijv. namen, e-mailadressen) en gebruik in plaats daarvan een ID, hash of gepseudonimiseerde identificator. <br /> <br /> Gebruik [Link Templates](https://docs.appsignal.com/application/link-templates) om ze in uw app terug te koppelen.
</Warning>

U kunt aangepaste parameters instellen op een transactie of span. Het wijzigen van de parameters van een transactie overschrijft de gegevens die door de AppSignal-instrumentaties zijn ingesteld.

[Alle parameters worden gefilterd](/guides/filter-data/filter-parameters) door onze integraties voordat ze naar onze servers worden verzonden.

Zie de tabel hieronder voor een lijst van geaccepteerde rootwaarden per taal. Elk genest object kan waarden bevatten die resulteren in geldige JSON (strings, integers, floats, booleans, nulls, enz.).

| Taal       | Geaccepteerde rootwaarden   |
| ---------- | --------------------------- |
| Ruby       | Arrays, Hashes              |
| JavaScript | Arrays, Objects             |
| Elixir     | Lists, Maps                 |
| Python     | Lists, Maps                 |
| Go         | JSON-geserialiseerde string |
| Java       | JSON-geserialiseerde string |
| PHP        | Arrays, Objects             |

Het onderstaande codevoorbeeld laat zien hoe u aangepaste request-parameters instelt:

<CodeGroup>
  ```ruby Ruby theme={null}
  # Values are merged at the top level
  Appsignal.add_params(
    :post => {
      :title => "My title",
      :body => "Post text."
    }
  )
  Appsignal.add_params(:user => { :login => "some_name" })
  Appsignal.add_params(:user => { :id => 123 })
  # Parameters:
  # {
  #   :post => { :title => "My title", :body => "Post text." },
  #   :user => { :id => 123 }
  # }
  ```

  ```elixir Elixir theme={null}
  Appsignal.Span.set_sample_data(
    Appsignal.Tracer.root_span,
    "params",
    %{
      post: %{
        title: "My new blog post!",
        body: "Some long blog post text."
      }
    }
  )
  ```

  ```javascript Node.js theme={null}
  import { setParams } from "@appsignal/nodejs";

  setParams({
    post: {
      title: "My new blog post!",
      body: "Some long blog post text.",
    },
  });
  ```

  ```python Python theme={null}
  from appsignal import set_params

  set_params({
    post: {
      title: "My new blog post!",
      body: "Some long blog post text."
    }
  })
  ```

  ```go Go theme={null}
  // Additional setup is required to first fetch or create a new span
  import (
  	"encoding/json"

  	"go.opentelemetry.io/otel/attribute"
  	"go.opentelemetry.io/otel/trace"
  )

  params := map[string]interface{}{
  	"param1": "value1",
  	"param2": "value2",
  	"nested": map[string]interface{}{
  		"param3": "value3",
  		"param4": "value4",
  	},
  }
  json, _ := json.Marshal(params)
  span.SetAttributes(attribute.String("appsignal.request.query_parameters", string(json)))
  ```

  ```java Java theme={null}
  // Additional setup is required to first fetch or create a new span
  import io.opentelemetry.api.trace.Span;
  // We're using the Jackson JSON library
  // You may need to add it to your project as a dependency
  import com.fasterxml.jackson.databind.ObjectMapper;
  import java.util.HashMap;
  import java.util.Map;

  Map<String, Object> queryParams = new HashMap<>();
  queryParams.put("param1", "value1");
  queryParams.put("param2", "value2");

  Map<String, String> nested = new HashMap<>();
  nested.put("param3", "value3");
  nested.put("param4", "value4");
  queryParams.put("nested", nested);

  try {
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = mapper.writeValueAsString(queryParams);

      Span span = Span.current();
      span.setAttribute("appsignal.request.query_parameters", jsonString);
  } catch (Exception e) {
      // Add error handling here
  }
  ```

  ```php PHP theme={null}
  <?php
  use Appsignal\Appsignal;

  $params = [
      'param1' => 'value1',
      'param2' => 'value2',
      'nested' => [
          'param3' => 'value3',
          'param4' => 'value4',
      ],
  ];

  Appsignal::setParams($params);
  ```
</CodeGroup>

Voor bepaalde talen is aanvullende configuratie vereist.
Volg de instructies voor deze talen:

* [Go](/go/custom-instrumentation)
* [Java](/java/custom-instrumentation)

<img src="https://mintcdn.com/appsignal-715f5a51/MS9b5WO71lSfD5jG/assets/images/screenshots/sample_data/params.png?fit=max&auto=format&n=MS9b5WO71lSfD5jG&q=85&s=20e1ff3948a2f1fc3739ee2ea82a3ffb" alt="params" width="756" height="233" data-path="assets/images/screenshots/sample_data/params.png" />

## Request payload-gegevens

Het AppSignal voor PHP-pakket en de talen die worden ondersteund via onze [OpenTelemetry beta](/opentelemetry) slaan de query-parameters van requests en de payload-gegevens van requests apart op.
Deze sectie beschrijft hoe u de request payload-gegevens van POST-requests instelt.

U kunt aangepaste request payload-gegevens instellen op een span.
Het wijzigen van de request payload-gegevens van een span overschrijft de gegevens die door de AppSignal-instrumentaties zijn ingesteld.

[Alle parameters worden gefilterd](/guides/filter-data/filter-parameters) door onze integraties voordat ze naar onze servers worden verzonden.

Zie de tabel hieronder voor een lijst van geaccepteerde rootwaarden per taal. Elk genest object kan waarden bevatten die resulteren in geldige JSON (strings, integers, floats, booleans, nulls, enz.).

| Taal | Geaccepteerde rootwaarden   |
| ---- | --------------------------- |
| Go   | JSON-geserialiseerde string |
| Java | JSON-geserialiseerde string |
| PHP  | Arrays, Objects             |

Het onderstaande codevoorbeeld laat zien hoe u aangepaste request payload-gegevens instelt:

<CodeGroup>
  ```go Go theme={null}
  // Additional setup is required to first fetch or create a new span
  import (
  	"encoding/json"

  	"go.opentelemetry.io/otel/attribute"
  	"go.opentelemetry.io/otel/trace"
  )

  payload := map[string]interface{}{
  	"param1": "value1",
  	"param2": "value2",
  	"nested": map[string]interface{}{
  		"param3": "value3",
  		"param4": "value4",
  	},
  }
  json, _ := json.Marshal(payload)
  span.SetAttributes(attribute.String("appsignal.request.payload", string(json)))
  ```

  ```java Java theme={null}
  // Additional setup is required to first fetch or create a new span
  import io.opentelemetry.api.trace.Span;
  // We're using the Jackson JSON library
  // You may need to add it to your project as a dependency
  import com.fasterxml.jackson.databind.ObjectMapper;
  import java.util.HashMap;
  import java.util.Map;

  Map<String, Object> payload = new HashMap<>();
  payload.put("param1", "value1");
  payload.put("param2", "value2");

  Map<String, String> nested = new HashMap<>();
  nested.put("param3", "value3");
  nested.put("param4", "value4");
  payload.put("nested", nested);

  try {
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = mapper.writeValueAsString(payload);

      Span span = Span.current();
      span.setAttribute("appsignal.request.payload", jsonString);
  } catch (Exception e) {
      // Add error handling here
  }
  ```

  ```php PHP theme={null}
  <?php
  use Appsignal\Appsignal;

  $payload = [
      'param1' => 'value1',
      'param2' => 'value2',
      'nested' => [
          'param3' => 'value3',
          'param4' => 'value4',
      ],
  ];

  Appsignal::setPayload($payload);
  ```
</CodeGroup>

Voor bepaalde talen is aanvullende configuratie vereist.
Volg de instructies voor deze talen:

* [Go](/go/custom-instrumentation)
* [Java](/java/custom-instrumentation)

## Beperkingen

Als de applicatie meerdere keren query-parameters of payload-gegevens van requests instelt, voegt de Ruby-gem de waarden samen op rootniveau.
Voor andere integraties wordt alleen de laatst ingestelde waarde opgeslagen.
