A loop can apply the same naming template to several inputs. The prefix changes the generated names while the list stays fixed.

Program

Play the script to choose the prefix and see the generated names.

loop_template_names.sh
#!/usr/bin/env bash

prefix=
names=("api" "web")
generated=""
for name in "${names[@]}"; do
    generated+="$prefix-$name "
done
generated="${generated% }"
echo "$generated"
#!/usr/bin/env bash

prefix=
names=("api" "web")
generated=""
for name in "${names[@]}"; do
    generated+="$prefix-$name "
done
generated="${generated% }"
echo "$generated"
loop template The loop applies the same text pattern to each array value.
accumulator `generated` collects the output as each row is processed.
trim suffix `${generated% }` removes one trailing space from the finished string.